Skip to content

Instantly share code, notes, and snippets.

@myogeshchavan97
Created April 2, 2024 11:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save myogeshchavan97/16a32a732643cb7acc46949ed409e8a3 to your computer and use it in GitHub Desktop.
Save myogeshchavan97/16a32a732643cb7acc46949ed409e8a3 to your computer and use it in GitHub Desktop.
Protected Routes Using createBrowserRouter
import React, { useState } from 'react';
import {
Navigate,
RouterProvider,
createBrowserRouter,
} from 'react-router-dom';
import Cart from './components/Cart';
import Home from './components/Home';
import Login from './components/Login';
import Orders from './components/Orders';
import Payment from './components/Payment';
import ProtectedRoute from './components/ProtectedRoute';
const App = () => {
const [isLoggedIn, setIsLoggedIn] = useState(false);
const updateStatus = () => {
setIsLoggedIn((prev) => !prev);
};
const router = createBrowserRouter([
{
path: '/',
element: <Home />,
},
{
path: '/login',
element: <Login updateStatus={updateStatus} />,
},
{
path: '/orders',
element: <ProtectedRoute isLoggedIn={isLoggedIn} />,
children: [
{
path: '',
element: <Orders />,
},
],
},
{
path: '/cart',
element: <ProtectedRoute isLoggedIn={isLoggedIn} />,
children: [
{
path: '',
element: <Cart />,
},
],
},
{
path: '/payment',
element: <ProtectedRoute isLoggedIn={isLoggedIn} />,
children: [
{
path: '',
element: <Payment />,
},
],
},
{
path: '*',
element: <Navigate to='/' />,
},
]);
return <RouterProvider router={router} />;
};
export default App;
@JasimKotai
Copy link

if suppose i have home screen and product screen and i want to go home screen to product screen but home screen will be main screen for example router should Home/Product how can i do this in react router dom v6

like this 👉🏻 : https://react.dev/reference/react/hooks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment