@@ -5,6 +5,7 @@ import { Loading } from 'src/components/Loading';
5
5
import { Route , Switch } from 'react-router-dom' ;
6
6
import { PrivateRoute } from './PrivateRoute' ;
7
7
import { MainLayout } from 'src/pages/layouts/MainLayout' ;
8
+ import { Helmet , HelmetProvider } from 'react-helmet-async' ;
8
9
9
10
// ---> Static pages
10
11
const HomePage = lazy ( ( ) => import ( 'src/pages/HomePages/HomePage' ) ) ;
@@ -37,53 +38,66 @@ const ProductEditPage = lazy(
37
38
// ---> Error pages
38
39
const NotFoundPage = lazy ( ( ) => import ( 'src/pages/ErrorPages/404Pages' ) ) ;
39
40
41
+ const helmetContext = { } ;
42
+
40
43
export const Routes = ( ) => {
41
44
return (
42
45
< BrowserRouter >
43
- < MainLayout >
44
- < Suspense fallback = { < Loading /> } >
45
- < Switch >
46
- { /* Static pages routes */ }
47
- < Route exact path = { PATH . HOME } component = { HomePage } />
48
- < Route exact path = { PATH . ABOUT } component = { AboutPage } />
49
- < Route exact path = { PATH . DEMO1 } component = { Demo1Page } />
50
- < Route exact path = { PATH . DEMO2 } component = { Demo2Page } />
51
- < Route exact path = { PATH . FEATURE1 } component = { Feature1Page } />
52
- < Route exact path = { PATH . FEATURE2 } component = { Feature2Page } />
53
- < Route exact path = { PATH . CONTACT } component = { ContactPage } />
46
+ < HelmetProvider context = { helmetContext } >
47
+ < Helmet >
48
+ < meta charSet = "utf-8" />
49
+ < title > React TS Boilerplate</ title >
50
+ < link
51
+ rel = "canonical"
52
+ href = "https://reactts-boilerplate.netlify.app/"
53
+ />
54
+ </ Helmet >
55
+
56
+ < MainLayout >
57
+ < Suspense fallback = { < Loading /> } >
58
+ < Switch >
59
+ { /* Static pages routes */ }
60
+ < Route exact path = { PATH . HOME } component = { HomePage } />
61
+ < Route exact path = { PATH . ABOUT } component = { AboutPage } />
62
+ < Route exact path = { PATH . DEMO1 } component = { Demo1Page } />
63
+ < Route exact path = { PATH . DEMO2 } component = { Demo2Page } />
64
+ < Route exact path = { PATH . FEATURE1 } component = { Feature1Page } />
65
+ < Route exact path = { PATH . FEATURE2 } component = { Feature2Page } />
66
+ < Route exact path = { PATH . CONTACT } component = { ContactPage } />
54
67
55
- { /* Auth routes */ }
56
- < Route exact path = { PATH . LOGIN } component = { LoginPage } />
57
- < Route exact path = { PATH . REGISTER } component = { RegisterPage } />
58
- < PrivateRoute exact path = { PATH . PROFILE } component = { ProfilePage } />
68
+ { /* Auth routes */ }
69
+ < Route exact path = { PATH . LOGIN } component = { LoginPage } />
70
+ < Route exact path = { PATH . REGISTER } component = { RegisterPage } />
71
+ < PrivateRoute exact path = { PATH . PROFILE } component = { ProfilePage } />
59
72
60
- { /* Products routes */ }
61
- < PrivateRoute
62
- exact
63
- path = { PATH . PRODUCTS }
64
- component = { ProductListPage }
65
- />
66
- < PrivateRoute
67
- exact
68
- path = { PATH . PRODUCT_NEW }
69
- component = { ProductNewPage }
70
- />
71
- < PrivateRoute
72
- exact
73
- path = { PATH . PRODUCT_SHOW }
74
- component = { ProductItemPage }
75
- />
76
- < PrivateRoute
77
- exact
78
- path = { PATH . PRODUCT_EDIT }
79
- component = { ProductEditPage }
80
- />
73
+ { /* Products routes */ }
74
+ < PrivateRoute
75
+ exact
76
+ path = { PATH . PRODUCTS }
77
+ component = { ProductListPage }
78
+ />
79
+ < PrivateRoute
80
+ exact
81
+ path = { PATH . PRODUCT_NEW }
82
+ component = { ProductNewPage }
83
+ />
84
+ < PrivateRoute
85
+ exact
86
+ path = { PATH . PRODUCT_SHOW }
87
+ component = { ProductItemPage }
88
+ />
89
+ < PrivateRoute
90
+ exact
91
+ path = { PATH . PRODUCT_EDIT }
92
+ component = { ProductEditPage }
93
+ />
81
94
82
- { /* Error routes */ }
83
- < Route component = { NotFoundPage } />
84
- </ Switch >
85
- </ Suspense >
86
- </ MainLayout >
95
+ { /* Error routes */ }
96
+ < Route component = { NotFoundPage } />
97
+ </ Switch >
98
+ </ Suspense >
99
+ </ MainLayout >
100
+ </ HelmetProvider >
87
101
</ BrowserRouter >
88
102
) ;
89
103
} ;
0 commit comments