@@ -6,6 +6,7 @@ import didUpdate from "@ember/render-modifiers/modifiers/did-update";
66import { service } from " @ember/service" ;
77import DToggleSwitch from " discourse/components/d-toggle-switch" ;
88import { SEARCH_TYPE_DEFAULT } from " discourse/controllers/full-page-search" ;
9+ import concatClass from " discourse/helpers/concat-class" ;
910import { ajax } from " discourse/lib/ajax" ;
1011import { isValidSearchTerm , translateResults } from " discourse/lib/search" ;
1112import icon from " discourse-common/helpers/d-icon" ;
@@ -107,6 +108,18 @@ export default class AiFullPageSearch extends Component {
107108 }
108109 }
109110
111+ get settled () {
112+ return (
113+ this .validSearchOrder &&
114+ ! this .searching &&
115+ this .searchTerm === this .initialSearchTerm
116+ );
117+ }
118+
119+ get noResults () {
120+ return this .settled && this .AiResults .length === 0 ;
121+ }
122+
110123 get searchTerm () {
111124 if (this .initialSearchTerm !== this .args .searchTerm ) {
112125 this .initialSearchTerm = undefined ;
@@ -123,6 +136,16 @@ export default class AiFullPageSearch extends Component {
123136 );
124137 }
125138
139+ get searchClass () {
140+ if (! this .validSearchOrder ) {
141+ return " unavailable" ;
142+ } else if (this .searching ) {
143+ return " in-progress" ;
144+ } else if (this .noResults ) {
145+ return " no-results" ;
146+ }
147+ }
148+
126149 get tooltipText () {
127150 return i18n (
128151 ` discourse_ai.embeddings.semantic_search_tooltips.${
@@ -197,9 +220,7 @@ export default class AiFullPageSearch extends Component {
197220 <div class =" semantic-search__container search-results" role =" region" >
198221 <div class =" semantic-search__results" >
199222 <div
200- class =" semantic-search__searching
201- {{if this . searching ' in-progress' }}
202- {{unless this . validSearchOrder ' unavailable' }} "
223+ class ={{concatClass " semantic-search__searching" this . searchClass}}
203224 >
204225 <DToggleSwitch
205226 disabled ={{this .disableToggleSwitch }}
0 commit comments