UNPKG

@empathyco/x-components

Version:
104 lines (101 loc) 2.66 kB
import { namespacedWireCommit, namespacedWireDispatch } from '../../wiring/namespaced-wires.factory.js'; import { filter } from '../../wiring/wires.operators.js'; import { createWiring } from '../../wiring/wiring.utils.js'; /** * `searchBox` {@link XModuleName | XModule name}. * * @internal */ const moduleName = 'searchBox'; /** * WireCommit for {@link SearchBoxXModule}. * * @internal */ const wireCommit = namespacedWireCommit(moduleName); /** * WireDispatch for {@link SearchBoxXModule}. * * @internal */ const wireDispatch = namespacedWireDispatch(moduleName); /** * Sets the query of the search-box module. * * @public */ const setSearchBoxQuery = wireCommit('setQuery'); /** * Sets the search state `query` with the selectedQueryPreview's query. * * @public */ const setSearchBoxQueryFromPreview = wireCommit('setQuery', ({ eventPayload: { query } }) => query); /** * Clears the query of the search-box module. * * @public */ const clearSearchBoxQuery = wireCommit('setQuery', ''); /** * Sets the search state `query`. * * @public */ const setUrlParams = wireDispatch('setUrlParams'); /** * Sets the search state `status`. * * @param event - The {@link XEvent} used to transition the status. * * @returns A wire. * * @public */ const setInputStatus = (event) => wireDispatch('setInputStatus', event); /** * SearchBox wiring. * * @internal */ const searchBoxWiring = createWiring({ ParamsLoadedFromUrl: { setUrlParams, transitionState: filter(setInputStatus('UserAcceptedAQuery'), ({ eventPayload: urlParams }) => { // eslint-disable-next-line ts/no-unsafe-member-access return !!urlParams.query; }), }, UserIsTypingAQuery: { setSearchBoxQuery, transitionState: setInputStatus('UserIsTypingAQuery'), }, UserAcceptedAQuery: { setSearchBoxQuery, transitionState: setInputStatus('UserAcceptedAQuery'), }, UserAcceptedAQueryPreview: { setSearchBoxQueryFromPreview, transitionState: setInputStatus('UserAcceptedAQuery'), }, UserPressedClearSearchBoxButton: { clearSearchBoxQuery, }, UserClickedCloseX: { clearSearchBoxQuery, }, UserClickedOutOfMainModal: { clearSearchBoxQuery, }, UserClearedQuery: { transitionState: setInputStatus('UserClearedQuery'), }, UserFocusedSearchBox: { transitionState: setInputStatus('UserFocusedSearchBox'), }, UserBlurredSearchBox: { transitionState: setInputStatus('UserBlurredSearchBox'), }, }); export { searchBoxWiring }; //# sourceMappingURL=wiring.js.map