Minor Changes
-
0e0e4712
#794 Thanks @zlatanpham! - Motivation: It’s super useful to have the search UI state synchronizing with the browser URL and we had the functionality internally developed in the search widgets. However, when users build the search UI with React SDK (or JS SDK), they have to develop the feature by themselves and the work could be challenging even for an experienced developer. Thus, the goal of the change is to have the sync URLs functionality as a generic solution in the React SDK so it can be easily used by both our internal development (search-widgets, demo,…) and the outside world.API proposal
The
URLStateSync
should be placed inside theSearchProvider
. It will work out of box with any UI that consumes data from our hook components.<SearchProvider {...}> <URLStateSync /> <YourSearchUI /> </SearchProvider>
By default, it supports state sync for the core params including
q
,filters
,sort
andresultsPerPage
but we can extend other options viaextendedParams
prop:const defaultViewType = 'list'; const [viewType, setViewType] = useState(defaultViewType); <SearchProvider {...}> <URLStateSync /> <YourSearchUI extendedParams={[ { key: 'viewType', value: viewType, defaultValue: defaultViewType, callback: setViewType, }, ]} /> </SearchProvider>