Analytics. Search View
Publishes a search_viewed event to the Analytics.Provider component.
Anchor to analyticsSearchView-parametersParameters
- Anchor to propspropspropsSearchViewPropsSearchViewPropsrequiredrequired
SearchViewProps
- customData
OtherData - data
SearchPayload
OtherData
SearchPayload
- searchResults
The search results
any - searchTerm
The search term used for the search results page
string
Examples
import {Analytics} from '@shopify/hydrogen';
import {useLoaderData} from 'react-router';
export async function loader({request}) {
const url = new URL(request.url);
const searchParams = new URLSearchParams(url.search);
const searchTerm = String(searchParams.get('q') || '');
return {searchTerm};
}
export default function SearchPage() {
const {searchTerm} = useLoaderData();
return (
<div className="search">
<h1>Search</h1>
<Analytics.SearchView data={{searchTerm}} />
</div>
);
}
Examples
Example
JavaScript
import {Analytics} from '@shopify/hydrogen'; import {useLoaderData} from 'react-router'; export async function loader({request}) { const url = new URL(request.url); const searchParams = new URLSearchParams(url.search); const searchTerm = String(searchParams.get('q') || ''); return {searchTerm}; } export default function SearchPage() { const {searchTerm} = useLoaderData(); return ( <div className="search"> <h1>Search</h1> <Analytics.SearchView data={{searchTerm}} /> </div> ); }TypeScript
import {Analytics} from '@shopify/hydrogen'; import {type LoaderFunctionArgs} from 'react-router'; import {useLoaderData} from 'react-router'; export async function loader({request}: LoaderFunctionArgs) { const url = new URL(request.url); const searchParams = new URLSearchParams(url.search); const searchTerm = String(searchParams.get('q') || ''); return {searchTerm}; } export default function SearchPage() { const {searchTerm} = useLoaderData<typeof loader>(); return ( <div className="search"> <h1>Search</h1> <Analytics.SearchView data={{searchTerm}} /> </div> ); }
Was this page helpful?