-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathApp.js
43 lines (41 loc) · 1.77 KB
/
App.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
36
37
38
39
40
41
42
43
import React from 'react';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import Footer from './components/Footer/Footer';
import Navbar from './components/Navbar/Navbar';
import AuthProvider from './contexts/AuthProvider';
import OrderProvider from './contexts/OrderProvider';
import PrivateRoute from './routes/PrivateRoute';
import PublicRoute from './routes/PublicRoute';
import ContactScreen from './screens/ContactScreen';
import ErrorScreen from './screens/ErrorScreen';
import HomeScreen from './screens/HomeScreen';
import OrderScreen from './screens/OrderScreen';
import ProductDetailScreen from './screens/ProductDetailScreen';
import ProductsScreen from './screens/ProductsScreen';
import ServicesDetailScreen from './screens/ServicesDetailScreen';
import SignInScreen from './screens/SignInScreen';
import SignUpScreen from './screens/SignUpScreen';
const App = () => {
return (
<BrowserRouter>
<AuthProvider>
<OrderProvider>
<Navbar />
<Switch>
<Route exact path="/"><HomeScreen /></Route>
<Route exact path="/contact"><ContactScreen /></Route>
<PublicRoute path="/signup"><SignUpScreen /></PublicRoute>
<PublicRoute path="/signin"><SignInScreen /></PublicRoute>
<PrivateRoute exact path="/services/:title"><ServicesDetailScreen /></PrivateRoute>
<Route exact path="/products/"><ProductsScreen /></Route>
<PrivateRoute exact path="/products/:title"><ProductDetailScreen /></PrivateRoute>
<PrivateRoute exact path="/orders"><OrderScreen /></PrivateRoute>
<Route path="*"><ErrorScreen /></Route>
</Switch>
<Footer />
</OrderProvider>
</AuthProvider>
</BrowserRouter>
)
}
export default App