adrema/resources/livewire-js/memberSearch.js

36 lines
837 B
JavaScript

import searchHelper from './searchHelper.js';
export default () => ({
members: [],
searchHelper: searchHelper([], {}),
onSubmitFirstMemberResult() {
if (this.searchHelper.hasNoHits()) {
this.searchHelper.clear();
return;
}
this.onSubmitMemberResult(this.searchHelper.firstHit().id.toString());
},
onSubmitMemberResult(id) {
if (this.members.find((m) => m === id) !== undefined) {
this.members = this.members.filter((m) => m !== id);
} else {
this.members.push(id);
}
this.searchHelper.clear();
this.$root.querySelector('input').focus();
},
set searchString(v) {
this.searchHelper.setInput(v);
},
get searchString() {
return this.searchHelper.getInput();
},
});