Bueno a mi personalmente, me gusta tener las rutas separadas en un componente… Me parece que como desarrollador algo que siempre vas a ver son las rutas para entender el sistema al igual que ves el package.json
A si que les dejo como separe las rutas…
App.js
import React from 'react'
import { GlobalStyle } from './styles/GlobalStyles'
import { Logo } from './components/Logo/Index'
import { NavBar } from './components/NavBar/index'
import { Route } from './router/Router'
export const App = () => (
<>
<Logo />
<GlobalStyle />
<Route />
<NavBar />
</>
)
Router.js
import React from 'react'
import { Router } from '@reach/router'
import { Home } from '../pages/Home'
import { Detail } from '../pages/Detail'
import { PrivateRoute } from './PrivateRoute'
const isAuth = false
export const Route = () => (
<>
<Router>
<Home path='/' />
<Home path='/pet/:id' />
<Detail path='/detail/:id' />
</Router>
<PrivateRoute isAuth={isAuth} />
</>
)
PrivateRoute.js
import React from 'react'
import { Router } from '@reach/router'
import { Favs } from '../pages/Favs'
import { NotRegisteredUser } from '../pages/NotRegisteredUser'
import { User } from '../pages/User'
export const PrivateRoute = ({isAuth}) => {
return (
<Router>
{
isAuth ? (
<>
<Favs path='/favs' />
<User path='/user' />
</>
) : (
<>
<NotRegisteredUser path='/favs' />
<NotRegisteredUser path='/user' />
</>
)
}
</Router>
)
}
Inclusive creo que se puede sacar el router De privateRouter para a si solo declararlo en un lugar solo
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.