UNPKG

@yext/search-ui-react

Version:

A library of React Components for powering Yext Search integrations

69 lines (64 loc) 1.95 kB
import { SearchActions, AutocompleteResponse, GenerativeDirectAnswerResponse, SearchIntent, SearchTypeEnum } from '@yext/search-headless-react'; /** * Executes a universal/vertical search. * * @public */ export async function executeSearch(searchActions: SearchActions): Promise<void> { const isVertical = searchActions.state.meta.searchType === SearchTypeEnum.Vertical; try { isVertical ? searchActions.executeVerticalQuery() : searchActions.executeUniversalQuery(); } catch (e) { console.error(`Error occured executing a ${isVertical ? 'vertical' : 'universal'} search.\n`, e); } } /** * Executes a universal/vertical autocomplete search and return the corresponding response. * * @public */ export async function executeAutocomplete( searchActions: SearchActions ): Promise<AutocompleteResponse | undefined> { const isVertical = searchActions.state.meta.searchType === SearchTypeEnum.Vertical; try { return isVertical ? searchActions.executeVerticalAutocomplete() : searchActions.executeUniversalAutocomplete(); } catch (e) { console.error(`Error occured executing a ${isVertical ? 'vertical' : 'universal'} autocomplete search.\n`, e); } } /** * Get search intents of the current query stored in headless using autocomplete request. * * @public */ export async function getSearchIntents( searchActions: SearchActions ): Promise<SearchIntent[] | undefined> { const results = await executeAutocomplete(searchActions); return results?.inputIntents; } /** * Executes a generative direct answer and return the corresponding response. * * @public */ export async function executeGenerativeDirectAnswer( searchActions: SearchActions ): Promise<GenerativeDirectAnswerResponse | undefined> { try { return await searchActions.executeGenerativeDirectAnswer(); } catch (e) { console.error(`Error occured executing generative direct answer.\n`, e); } }