|
1 | 1 | import './sass/App.scss';
|
| 2 | +import VerticalSearchPage from './pages/VerticalSearchPage'; |
| 3 | +import UniversalSearchPage from './pages/UniversalSearchPage'; |
| 4 | +import PageRouter from './PageRouter'; |
| 5 | +import StandardLayout from './pages/StandardLayout'; |
2 | 6 | import { AnswersActionsProvider } from '@yext/answers-headless-react';
|
3 |
| -import AlternativeVerticals from './components/AlternativeVerticals'; |
4 |
| -import DecoratedAppliedFilters from './components/DecoratedAppliedFilters'; |
5 |
| -import { StandardCard } from './components/cards/StandardCard'; |
6 |
| -import ResultsCount from './components/ResultsCount'; |
7 |
| -import SearchBar from './components/SearchBar'; |
8 |
| -import StaticFilters from './components/StaticFilters'; |
9 |
| -import VerticalResults from './components/VerticalResults'; |
10 |
| -import SpellCheck from './components/SpellCheck'; |
11 |
| -import LocationBias from './components/LocationBias'; |
12 |
| -import UniversalResults from './components/UniversalResults'; |
13 |
| -import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; |
14 |
| -import Facets from './components/Facets'; |
15 |
| - |
16 |
| -function App() { |
17 |
| - const staticFilterOptions = [ |
18 |
| - { |
19 |
| - label: 'canada', |
20 |
| - fieldId: 'c_employeeCountry', |
21 |
| - value: 'Canada', |
22 |
| - }, |
23 |
| - { |
24 |
| - label: 'remote', |
25 |
| - fieldId: 'c_employeeCountry', |
26 |
| - value: 'Remote' |
27 |
| - }, |
28 |
| - { |
29 |
| - label: 'usa', |
30 |
| - fieldId: 'c_employeeCountry', |
31 |
| - value: 'United States', |
32 |
| - }, |
33 |
| - { |
34 |
| - label: 'tech', |
35 |
| - fieldId: 'c_employeeDepartment', |
36 |
| - value: 'Technology' |
37 |
| - }, |
38 |
| - { |
39 |
| - label: 'consult', |
40 |
| - fieldId: 'c_employeeDepartment', |
41 |
| - value: 'Consulting', |
42 |
| - }, |
43 |
| - { |
44 |
| - label: 'fin', |
45 |
| - fieldId: 'c_employeeDepartment', |
46 |
| - value: 'Finance', |
47 |
| - } |
48 |
| - ] |
49 |
| - |
50 |
| - const universalResultsConfig = { |
51 |
| - people: { |
52 |
| - label: "People", |
53 |
| - viewMore: true, |
54 |
| - cardConfig: { |
55 |
| - CardComponent: StandardCard, |
56 |
| - showOrdinal: true |
57 |
| - } |
58 |
| - }, |
59 |
| - events: { |
60 |
| - label: "events", |
61 |
| - cardConfig: { |
62 |
| - CardComponent: StandardCard, |
63 |
| - showOrdinal: true |
64 |
| - } |
65 |
| - }, |
66 |
| - links: { |
67 |
| - label: "links", |
68 |
| - viewMore: true, |
69 |
| - cardConfig: { |
70 |
| - CardComponent: StandardCard, |
71 |
| - showOrdinal: true |
72 |
| - } |
73 |
| - }, |
74 |
| - financial_professionals: { |
75 |
| - label: "Financial Professionals", |
76 |
| - }, |
77 |
| - healthcare_professionals: { |
78 |
| - label: "Healthcare Professionals", |
| 7 | +import { universalResultsConfig } from './universalResultsConfig'; |
| 8 | + |
| 9 | +const routes = [ |
| 10 | + { |
| 11 | + path: '/', |
| 12 | + exact: true, |
| 13 | + page: <UniversalSearchPage universalResultsConfig={universalResultsConfig} /> |
| 14 | + }, |
| 15 | + ...Object.keys(universalResultsConfig).map(key => { |
| 16 | + return { |
| 17 | + path: `/${key}`, |
| 18 | + page: <VerticalSearchPage verticalKey={key} /> |
79 | 19 | }
|
80 |
| - } |
81 |
| - |
82 |
| - const universalResultsFilterConfig = { |
83 |
| - show: true |
84 |
| - }; |
85 |
| - |
86 |
| - const facetConfigs = { |
87 |
| - c_employeeDepartment: { |
88 |
| - label: 'Employee Department!' |
89 |
| - } |
90 |
| - } |
| 20 | + }) |
| 21 | +]; |
91 | 22 |
|
| 23 | +export default function App() { |
92 | 24 | return (
|
93 | 25 | <AnswersActionsProvider
|
94 | 26 | apiKey='2d8c550071a64ea23e263118a2b0680b'
|
95 | 27 | experienceKey='slanswers'
|
96 | 28 | locale='en'
|
97 | 29 | verticalKey='people'
|
98 | 30 | >
|
99 |
| - {/* |
100 |
| - TODO: use Navigation component for routing when that's added to repo. |
101 |
| - current setup is for testing purposes. |
102 |
| - */} |
103 |
| - <Router> |
104 |
| - <Switch> |
105 |
| - {/* universal search */} |
106 |
| - <Route exact path='/'> |
107 |
| - <div className='start'> |
108 |
| - test |
109 |
| - </div> |
110 |
| - <div className='end'> |
111 |
| - <SearchBar |
112 |
| - placeholder='Search...' |
113 |
| - isVertical={false} |
114 |
| - /> |
115 |
| - <div> |
116 |
| - <UniversalResults |
117 |
| - appliedFiltersConfig={universalResultsFilterConfig} |
118 |
| - verticalConfigs={universalResultsConfig} |
119 |
| - /> |
120 |
| - </div> |
121 |
| - </div> |
122 |
| - </Route> |
123 |
| - |
124 |
| - {/* vertical page */} |
125 |
| - <Route path={Object.keys(universalResultsConfig).map(key => `/${key}`)}> |
126 |
| - <div> |
127 |
| - A VERTICAL PAGE! |
128 |
| - </div> |
129 |
| - </Route> |
130 |
| - |
131 |
| - {/* vertical search */} |
132 |
| - <Route exact path='/vertical'> |
133 |
| - <div className='start'> |
134 |
| - test |
135 |
| - <StaticFilters |
136 |
| - title='~Country and Employee Departments~' |
137 |
| - options={staticFilterOptions} |
138 |
| - /> |
139 |
| - <Facets |
140 |
| - searchOnChange={true} |
141 |
| - searchable={true} |
142 |
| - collapsible={true} |
143 |
| - defaultExpanded={true} |
144 |
| - facetConfigs={facetConfigs} |
145 |
| - /> |
146 |
| - <SpellCheck |
147 |
| - isVertical={true} |
148 |
| - /> |
149 |
| - </div> |
150 |
| - <div className='end'> |
151 |
| - <SearchBar |
152 |
| - placeholder='Search...' |
153 |
| - isVertical={true} |
154 |
| - /> |
155 |
| - <div> |
156 |
| - <ResultsCount /> |
157 |
| - <DecoratedAppliedFilters |
158 |
| - showFieldNames={true} |
159 |
| - hiddenFields={['builtin.entityType']} |
160 |
| - delimiter='|' |
161 |
| - /> |
162 |
| - <AlternativeVerticals |
163 |
| - currentVerticalLabel='People' |
164 |
| - verticalsConfig={[ |
165 |
| - { label: 'Locations', verticalKey: 'KM' }, |
166 |
| - { label: 'FAQs', verticalKey: 'faq' } |
167 |
| - ]} |
168 |
| - /> |
169 |
| - <VerticalResults |
170 |
| - CardComponent={StandardCard} |
171 |
| - cardConfig={{ showOrdinal: true }} |
172 |
| - displayAllResults={true} |
173 |
| - /> |
174 |
| - <LocationBias isVertical={false} /> |
175 |
| - </div> |
176 |
| - </div> |
177 |
| - </Route> |
178 |
| - </Switch> |
179 |
| - </Router> |
| 31 | + <div className='App'> |
| 32 | + <PageRouter |
| 33 | + Layout={StandardLayout} |
| 34 | + routes={routes} |
| 35 | + /> |
| 36 | + </div> |
180 | 37 | </AnswersActionsProvider>
|
181 | 38 | );
|
182 | 39 | }
|
183 |
| - |
184 |
| -export default App; |
0 commit comments