|
| 1 | +import React, { Suspense } from 'react'; |
1 | 2 | import { Route, Switch, Redirect } from 'react-router-dom';
|
2 | 3 |
|
3 |
| -import AllQuotes from './pages/AllQuotes'; |
4 |
| -import QuoteDetail from './pages/QuoteDetail'; |
5 |
| -import NewQuote from './pages/NewQuote'; |
6 |
| -import NotFound from './pages/NotFound'; |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | +import LoadingSpinner from './components/ui/LoadingSpinner'; |
| 8 | + |
| 9 | +// import AllQuotes from './pages/AllQuotes'; |
| 10 | +// import QuoteDetail from './pages/QuoteDetail'; |
| 11 | +// import NewQuote from './pages/NewQuote'; |
| 12 | +// import NotFound from './pages/NotFound'; |
7 | 13 | import Layout from './components/layout/Layout';
|
8 | 14 |
|
| 15 | +const NewQuote = React.lazy(() => import('./pages/NewQuote')); |
| 16 | +const QuoteDetail = React.lazy(() => import('./pages/QuoteDetail')); |
| 17 | +const NotFound = React.lazy(() => import('./pages/NotFound')); |
| 18 | +const AllQuotes = React.lazy(() => import('./pages/AllQuotes')); |
| 19 | + |
| 20 | + |
9 | 21 | function App() {
|
10 | 22 | return (
|
11 | 23 | <Layout>
|
12 |
| - <Switch> |
13 |
| - <Route path='/' exact> |
14 |
| - <Redirect to='/quotes' /> |
15 |
| - </Route> |
16 |
| - <Route path='/quotes' exact> |
17 |
| - <AllQuotes /> |
18 |
| - </Route> |
19 |
| - <Route path='/quotes/:quoteId'> |
20 |
| - <QuoteDetail /> |
21 |
| - </Route> |
22 |
| - <Route path='/new-quote'> |
23 |
| - <NewQuote /> |
24 |
| - </Route> |
25 |
| - <Route path='*'> |
26 |
| - <NotFound /> |
27 |
| - </Route> |
28 |
| - </Switch> |
| 24 | + <Suspense |
| 25 | + fallback={ |
| 26 | + <div className='centered'> |
| 27 | + <LoadingSpinner /> |
| 28 | + </div> |
| 29 | + } |
| 30 | + > |
| 31 | + <Switch> |
| 32 | + <Route path='/' exact> |
| 33 | + <Redirect to='/quotes' /> |
| 34 | + </Route> |
| 35 | + <Route path='/quotes' exact> |
| 36 | + <AllQuotes /> |
| 37 | + </Route> |
| 38 | + <Route path='/quotes/:quoteId'> |
| 39 | + <QuoteDetail /> |
| 40 | + </Route> |
| 41 | + <Route path='/new-quote'> |
| 42 | + <NewQuote /> |
| 43 | + </Route> |
| 44 | + <Route path='*'> |
| 45 | + <NotFound /> |
| 46 | + </Route> |
| 47 | + </Switch> |
| 48 | + </Suspense> |
29 | 49 | </Layout>
|
30 | 50 | );
|
31 | 51 | }
|
|
0 commit comments