@yext/search-ui-react
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

search-ui-react


A library of React Components for powering Yext Search integrations.

See the full documentation here.

Getting Started

If you are using NPM 7+, you can install the components with the following command:

npm install @yext/search-ui-react

The @yext/search-headless-react peer dependency will be automatically installed.

If you are using NPM 6 or Yarn, you can install the library and its peer dependencies with this command:

npx install-peerdeps @yext/search-ui-react

The command will work with Yarn so long as NPM 6+ is installed on the machine.

Once the library and its peer dependencies are installed, our React Components should be nested inside the SearchHeadlessProvider. SearchHeadlessProvider requires a SearchHeadless instance, which is created using provideHeadless(...) with the appropriate credentials:

import { provideHeadless, SearchHeadlessProvider } from '@yext/search-headless-react';
import { SearchBar, UniversalResults, VerticalConfigMap } from '@yext/search-ui-react';
import { v4 as uuidv4 } from 'uuid';

const config = {
  apiKey: '<apiKey>',
  experienceKey: '<experienceKey>',
  locale: 'en',
  experienceVersion: 'PRODUCTION',
}

const searcher = provideHeadless(config);

searcher.setSessionTrackingEnabled(true);
let sessionId = window.sessionStorage.getItem('sessionId');
if (!sessionId) {
  sessionId = uuidv4();
  window.sessionStorage.setItem('sessionId', sessionId);
}
searcher.setSessionId(sessionId);

const verticalConfigMap: VerticalConfigMap = {
  help_articles: {
    label: "Help Articles"
  }
}

function App() {
  return (
    <SearchHeadlessProvider searcher={searcher}>
      <SearchBar />
      <UniversalResults verticalConfigMap={verticalConfigMap}/>
    </SearchHeadlessProvider>
  );
}

export default App;

To use the Component Library's Styling without adding Tailwind to your project, add the following import:

import '@yext/search-ui-react/bundle.css'

Compatibility Notes

This library and its dependencies use optional chaining and other modern TS syntax that is not inherently supported by Webpack <5 (e.g. via create-react-app@4). Additional Babel plugins are needed for transpiling if using legacy versions.

Package Sidebar

Install

npm i @yext/search-ui-react

Weekly Downloads

2,422

Version

1.5.0

License

BSD-3-Clause

Unpacked Size

2.95 MB

Total Files

132

Last publish

Collaborators

  • souravkumar
  • anguyenyext
  • gargsi
  • manash-rauta
  • rsalunke
  • johnnguyen
  • saivythik
  • scheerla
  • a_ashwik
  • slapshot-bot
  • ataing
  • prisharma
  • ttanushree
  • nlanjewar
  • abhishekbajpai
  • ajaybenno
  • tpotla
  • surya_yext
  • nbramblett
  • nsiskind
  • saahith
  • emilyzhang777
  • sscott24
  • ydaniel
  • junpark1213
  • dsurducan
  • afriedman00
  • lilwang
  • dgurland
  • dwon
  • htamirepi
  • ajgist
  • yunxiashi
  • emilyfranklin
  • msporer-yext
  • pgill
  • snagabhirava
  • twhiteyext
  • ewu42
  • bryanreed
  • dlsgusrn7577
  • klu
  • paigep
  • stellali
  • petya182
  • ptroupgalligan
  • syhanley
  • zhengzhi
  • mdavis-yext
  • jimboh
  • jballschneider
  • jknutsonn
  • jamesyang14
  • jfromm
  • tobyko
  • lymarrie
  • levyshi9945
  • mkilpatrick
  • baigel1
  • koyoldc
  • nricartsanchez
  • roser11
  • dkang3021
  • xlin97
  • mleifer
  • pmomesso
  • eefi
  • mxs2019
  • jaredhood
  • nmanu
  • jrhoads
  • npark
  • lki9419
  • mancusi
  • rchhatre
  • mtusman
  • mdavish
  • apavlick
  • yext_eng_npm
  • benmcginnis
  • kunal-p
  • data-enabler
  • tmeyer2115
  • mbowman
  • jronkin_yext
  • oshi
  • svc_jenkins_consulting_yext
  • cblair_yext
  • mwoon
  • willgorick
  • bhaines-yext
  • aliang_yext
  • zgeier
  • sgresh_yext
  • rconsalo
  • stephenrva
  • jbaik
  • sjayakumar
  • tritpham
  • ttimblin
  • sharvey
  • wenright-yext
  • npatel94
  • telliottyext
  • johncho92
  • canderson_yext
  • ssaunders
  • sukim
  • rpope
  • eal172
  • peteros
  • jachen1997
  • jesuyed
  • ytruong
  • joshuahsueh