React UI Reference
Learn more about the Depict Search UI React SDK, its components and configuration.
The Depict UI React SDK enables seamless integration of Depict Search UI into your React web applications. With our developer-friendly components and wrappers, you can effortlessly add powerful search functionality to your eCommerce website.
Please find the guide on how to integrate with depict if you’re using react here.
The Depict search modal
The Depict search modal is the component that captures users’ queries in a text field. This component is triggered when either of the following events occurs:
- The
open
callback function, returned by theuseDepictSearchModal hook
, is called. - When a click event occurs on the
DepictSearchField
component. In both cases, you can align the top of the modal to the top of another DOM element by using thealignerRef
property.
📘 Modal alignment on smaller screens
When the viewport height is below 900px, the search modal will overlook the element reference passed to the alignerRef
property and center the search modal to the top of the viewport.
React component API
The SDK is pre-built with React components and wrappers, making it a perfect fit for React.js and Next.js web applications. The following sections describe these components and their configuration.
The DepictProvider
component
The DepictProvider
is a wrapper component for the root component of your entire application. It provides configuration to all Depict UI components beneath it
The following table shows all DepictProvider
configuration properties, their types, and descriptions:
This is the unique merchant identifier given by Depict.
This specifies the market identifier.
Locale object imported from @depict-ai/react-ui/locales
. Determines
- The translations for the UI
- The locale to request from backend
- The currency formatting used on the frontend
You have to check demo.depict.ai to see which locales the Depict backend accepts for your specific merchant.
The different objects exported from @depict-ai/js-ui/locales
have a backend_locale_
property equivalent to their name, so either import the locale with the correct name (recommended) or just set the backend_locale_
property to the correct value.
You can modify or create your own locale object as long as it’s the same format as the ones in @depict-ai/js-ui/locales
.
Configuration object lets you customize your website’s search parameters, see further below.
This function will be used internally by our components to navigate between Depict Search UI pages.This prop is required in all applications that don’t use Next.JS
Optionally you can override the default session id used for personalization here. This is the ID that will be used to tie together the different tracking events for a user.
A <string, string>
map of custom metadata to include in API requests to Depict
DisplayTransformers are functions that take in a list of categories, content search results or products and then can transform or enrich the data for each category, content search result or product card in a batched way. See Creating page URLs and enriching product data.
The search
property on the DepictProvider
wrapper is a configuration object that allows you to modify search parameters on your website. Use the config to tailor your search URL and behavior. The following table shows the search
object’s configuration properties:
The unique URL path to your website’s search page.
The URL parameter (or query string) for each search on your website.
Whether to enable showing product listing pages matching the search query, in the search modal and search page.
Enable or disable content search (seeing articles, FAQ, blog posts, etc in search results).
The search modal component to use. You can switch between the classic and the new search modal. See here for screenshots. Provide one of the components here that you can import from the same package as the one you’re using to see this message (SearchModalV2
or ClassicSearchModal
).
You also need to reflect the choice in SCSS, example:
The default is SearchModalV2. That means that ClassicSearchModal can get tree-shaken if you use v2 but not vice-versa. To force SearchModalV2 from being tree-shaken, set process.env.NO_SEARCH_MODAL_DEFAULT to “true”.
The useSearchField
hook
Use the useSearchField
hook to render a search field on your site. The destructured value is the SearchField
component to be nested within your application.
The SearchField
component displays a search field that opens the Depict search modal.
SearchField with the modal aligned to the search field
SearchField with the modal aligned to another DOM element
The following table shows the useSearchField
hook’s configuration properties, their types, and descriptions:
This is the ref of the element in the DOM to which you intend to align the resulting modal.When not provided, the modal aligns on the SearchField itself.
When using multiple search instances on the same page, you need to set a unique stateKey for each one. When only using one instance, leave this unset. We recommend using an incrementing number, such as “1”, “2”, “3”, etc. To associate a SearchField with a SearchPage keyed component, set the same stateKey on both. If no stateKey is provided, the “default” instance will be used.
The useSearchModal
hook
Use the useSearchModal
hook in place of the SearchField
component to dynamically open the search modal.
The destructured value is a function that opens the modal in response to user events. For example:
The following table shows the useSearchModal
hook’s configuration properties, their types, and descriptions:
This represents the location on the DOM to which the modal should be aligned. Set this value to aligned to align the modal to an element on your website.
This is the ref of the element in the DOM to which you intend to align the modal.
When using multiple search instances on the same page, you need to set a unique stateKey for each one. When only using one instance, leave this unset. We recommend using an incrementing number, such as “1”, “2”, “3”, etc. To associate a modal with a SearchPage keyed component, set the same stateKey on both. If no stateKey is provided, the “default” instance will be used.
The SearchPage
component
The SearchPage
component acts as the search results page on your site. It is responsible for rendering results from each search.
The following table shows all SearchPage
configuration properties, their types, and descriptions:
The React component to use for rendering products.
Used to customize breakpoints on the search results page. Handles the number of product card columns displayed at each screen size.
The spacing between products.
Visibility of the search input field that’s part of SearchPage.
When using multiple search instances on the same page, you need to set a unique stateKey for each one. When only using one instance, leave this unset. We recommend using an incrementing number, such as “1”, “2”, “3”, etc. To associate a modal with a SearchPage keyed component, set the same stateKey on both. If no stateKey is provided, the “default” instance will be used.
A sparse array containing content blocks to show (or an empty slot or undefined if there’s no block at that index). See ReactContentBlock for how a content block looks like. The index is the row where the content block should be shown.
Was this page helpful?