summaryrefslogtreecommitdiff
path: root/src/index.tsx
blob: 2ea3201f94903943a3319067166c92c0275a6ca6 (plain)
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
36
37
38
39
40
41
import React from 'react';
import ReactDOM from 'react-dom';
import 'tailwindcss/tailwind.css';
import {
  BrowserRouter as Router,
  Switch,
  Route,
} from 'react-router-dom';
import Header from './components/Header';
import Home from './containers/Home';
import Service from './lib/Service';
import { ServiceProvider } from './lib/ServiceContext';
import services from './services';

const navigation = [
  { name: 'Главная', route: '/' },
  ...services.map(({ name, route }) => ({ name, route: `/${route}` })),
];

const App: React.FC = () => (
  <Router>
    <Header navigation={navigation} />
    <Switch>
      <Route exact path="/" component={Home} />
      {services.map(service => (
        <Route path={`/${service.route}`} key={service.route}>
          <ServiceProvider value={service}>
            <Service />
          </ServiceProvider>
        </Route>
      ))}
    </Switch>
  </Router>
);

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root'),
);