diff --git a/app/components/learningmaterial-search.gjs b/app/components/learningmaterial-search.gjs index 2f35c65ce6..17a0868c82 100644 --- a/app/components/learningmaterial-search.gjs +++ b/app/components/learningmaterial-search.gjs @@ -23,8 +23,10 @@ export default class LearningmaterialSearchComponent extends Component { @tracked searchResultsPerPage = 50; @tracked hasMoreSearchResults = false; @tracked searchReturned = false; + @tracked showResults = false; search = task({ restartable: true }, async (query) => { + this.showResults = true; if (query.trim() === '') { this.searchReturned = false; this.searchPage = 1; @@ -61,6 +63,20 @@ export default class LearningmaterialSearchComponent extends Component { this.query = ''; } + @action + focus() { + this.showResults = true; + } + + @action + focusOut(event) { + const newFocus = event.relatedTarget; + + if (!event.currentTarget.contains(newFocus)) { + this.showResults = false; + } + } + searchMore = task({ drop: true }, async () => { const results = await this.store.query('learning-material', { q: this.query, @@ -88,92 +104,99 @@ export default class LearningmaterialSearchComponent extends Component { element.style.width = `${element.previousElementSibling.clientWidth}px`; }); diff --git a/app/components/search-box.gjs b/app/components/search-box.gjs index fd57f65f05..13423fad58 100644 --- a/app/components/search-box.gjs +++ b/app/components/search-box.gjs @@ -87,6 +87,7 @@ export default class SearchBoxComponent extends Component { maxlength={{this.maxlength}} {{on "input" this.update}} {{on "keyup" this.keyUp}} + ...attributes />