-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathApp.tsx
42 lines (37 loc) · 1.01 KB
/
App.tsx
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
42
import React from 'react';
import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';
import { debounce } from 'debounce';
import ScrollToTop from './utils/ScrollToTop';
import PublicPages from './pages/public';
import AdminPages from './pages/admin';
import { store } from './store/index';
import { saveState } from './utils/browser-storage';
import TermsPage from './pages/public/terms';
import AdminAuthModal from './components/admin/auth-modal';
import RatesRefresher from './hooks/ratesRefresher';
store.subscribe(
debounce(() => {
saveState(store.getState());
}, 800)
);
function App(): JSX.Element {
return (
<Router>
<ScrollToTop />
<RatesRefresher />
<Switch>
<Route path='/admin'>
<AdminAuthModal />
<AdminPages />
</Route>
<Route path={['/terms-and-conditions', '/blocktank/terms-and-conditions']}>
<TermsPage showFullPage />
</Route>
<Route exact path={['/*']}>
<PublicPages />
</Route>
</Switch>
</Router>
);
}
export default App;