import "./App.css";
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import HomePage from "./pages/HomePage";
import ConfessionsPage from "./pages/ConfessionsPage";
import HelpPage from "./pages/HelpPage";
import { useContext, useState, useEffect } from "react";
import { VentifyContext } from "./context/VentifyContextProvider";
function App() {
const publicRoutes = [
{
path: "/",
element: <HomePage />,
},
{
path: "/help",
element: <HelpPage />,
},
];
const protectedRoutes = [
...publicRoutes,
{
path: "/confessions",
element: <ConfessionsPage />,
},
];
const { userIsLoggedIn } = useContext(VentifyContext);
const publicRouter = createBrowserRouter(publicRoutes);
const protectedRouter = createBrowserRouter(protectedRoutes);
const [router, setRouter] = useState(publicRouter);
useEffect(() => {
setRouter(userIsLoggedIn ? protectedRouter : publicRouter);
}, [userIsLoggedIn]);
return <RouterProvider router={router} />;
}
export default App;
it's not able to find protected routes when user logged in and userIsloggedIn
value changes to true
. ii'm using useEffect hook so that it render the logic again but still protected routes are not accessible.