diff --git a/src/Frontend/src/components/dashboard/cardAdderComponent.js b/src/Frontend/src/components/dashboard/cardAdderComponent.js
index 2cc0527..fa3169e 100644
--- a/src/Frontend/src/components/dashboard/cardAdderComponent.js
+++ b/src/Frontend/src/components/dashboard/cardAdderComponent.js
@@ -16,9 +16,16 @@ class CardAdderComponent extends React.Component {
render() {
this.state.options = this.props.values.filter(x => !this.props.selected.includes(x));
return (
-
this.searchOpened()} onBlur={() => this.searchClosed()}>
+
@@ -48,8 +55,9 @@ class CardAdderComponent extends React.Component {
this.setState({ selecting: true, query: this.search.current.value });
}
- searchClosed() {
- this.setState({ selecting: false });
+ searchClosed(e) {
+ if (e.relatedTarget && e.relatedTarget.tabIndex === -1) return;
+ this.setState({ selecting: false, query: "" });
}
getValue(id) {
@@ -57,12 +65,11 @@ class CardAdderComponent extends React.Component {
}
selectValue(id) {
- this.searchClosed();
var newSelected = this.state.selected;
newSelected.push(id);
var newOptions = this.state.options;
newOptions.splice(newOptions.indexOf(id), 1);
- this.setState({ selected: newSelected, options: newOptions });
+ this.setState({ selecting: false, query: "", selected: newSelected, options: newOptions });
this.props.onChanged();
this.props.onSelected(id);
}
diff --git a/src/Frontend/src/components/dashboard/cardListComponent.js b/src/Frontend/src/components/dashboard/cardListComponent.js
index 34a2054..98630e8 100644
--- a/src/Frontend/src/components/dashboard/cardListComponent.js
+++ b/src/Frontend/src/components/dashboard/cardListComponent.js
@@ -16,9 +16,16 @@ class CardListComponent extends React.Component {
render() {
var disabled = this.props.max && this.state.selected?.length >= this.props.max;
return (
-
this.searchOpened()} onBlur={() => this.searchClosed()}>
+
- this.searchUpdated()} />
+ this.searchOpened()}
+ onInput={() => this.searchUpdated()}
+ onBlur={(e) => this.searchClosed(e)} />
{this.renderOptions()}
{this.renderSelected()}
@@ -67,8 +74,9 @@ class CardListComponent extends React.Component {
this.setState({ selecting: true, query: this.search.current.value });
}
- searchClosed() {
- this.setState({ selecting: false });
+ searchClosed(e) {
+ if (e.relatedTarget && e.relatedTarget.tabIndex === -1) return;
+ this.setState({ selecting: false, query: "" });
}
getValue(id) {
@@ -84,12 +92,11 @@ class CardListComponent extends React.Component {
}
selectValue(id) {
- this.searchClosed();
var newSelected = this.state.selected;
newSelected.push(id);
var newOptions = this.state.options;
newOptions.splice(newOptions.indexOf(id), 1);
- this.setState({ selected: newSelected, options: newOptions });
+ this.setState({ selecting: false, query: "", selected: newSelected, options: newOptions });
this.props.onChanged();
}