UNPKG

@empathyco/x-components

Version:
53 lines (50 loc) 1.88 kB
import '@empathyco/x-utils'; import { createStoreEmitters } from '../../../store/utils/store-emitters.utils.js'; import { isStringEmpty } from '../../../utils/string.js'; import { searchXStoreModule } from './module.js'; /** * {@link StoreEmitters} For the search module. * * @internal */ const searchEmitters = createStoreEmitters(searchXStoreModule, { FacetsChanged: { selector: state => state.facets, filter(newValue, oldValue) { return newValue.length !== 0 || oldValue.length !== 0; }, }, PageChanged: state => state.page, ResultsChanged: state => state.results, SearchRequestChanged: (_, getters) => getters.request, SearchRequestUpdated: (_, getters) => getters.request, SearchResponseChanged: { selector: (state, getters) => { return { request: getters.request, status: state.status, banners: state.banners, facets: state.facets, partialResults: state.partialResults, promoteds: state.promoteds, queryTagging: state.queryTagging, displayTagging: state.displayTagging, redirections: state.redirections, results: state.results, spellcheck: state.spellcheckedQuery, totalResults: state.totalResults, }; }, filter: (newValue, oldValue) => { return (newValue.status !== oldValue.status && oldValue.status === 'loading' && !!newValue.request); }, }, SearchTaggingChanged: { selector: state => state.queryTagging, filter: ({ url }) => !isStringEmpty(url), }, SpellcheckChanged: state => state.spellcheckedQuery, SortChanged: state => state.sort, }); export { searchEmitters }; //# sourceMappingURL=emitters.js.map