forked from pinterest/gestalt
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAppWrapper.js
35 lines (31 loc) · 949 Bytes
/
AppWrapper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// @flow strict
import React, { type Node } from 'react';
import { BrowserRouter, Route, Switch, Redirect } from 'react-router-dom';
import App from './components/App.js';
import CardPage from './components/CardPage.js';
import routes from './components/routes.js';
import sidebarIndex from './components/sidebarIndex.js';
import './docs.css';
import 'gestalt/dist/gestalt.css';
import 'gestalt-datepicker/dist/gestalt-datepicker.css';
const mapRoutes = (pages) =>
pages.map((page, i) => (
<Route
path={`/${page}`}
key={i}
render={() => <CardPage cards={routes[page]} page={page} />}
/>
));
function AppWrapper(): Node {
return (
<BrowserRouter>
<App>
<Switch>
<Route exact path="/" render={() => <Redirect to="/What's New" />} />
{sidebarIndex.map((section) => mapRoutes(section.pages))}
</Switch>
</App>
</BrowserRouter>
);
}
export default AppWrapper;