Skip to content

Auth Example

src\components\RouterGuard

tsx
import { Navigate } from "react-router-dom";
interface Props {
  guard: boolean;
  element: JSX.Element;
}
export default function RouterGuard(props: Props) {
  const authed = props.guard;
  return (
    authed ? props.element : < Navigate to="/login" replace />
  )
}

src\components\RouterView

tsx
import './style.css';
import Home from '../../pages/Home';
import Login from '../../pages/Login';
import NotFound from '../../pages/NotFound';
import RouterGuard from '../RouterGuard';
import { Routes, Route, Outlet } from "react-router-dom";

export default function RouterView() {
  return (
    <div className="router-view">
      <Routes>
        <Route path="/" element={<RouterGuard guard={false} element={<Home />} />} />
        <Route path="/login" element={<Login />} />
        <Route path="*" element={<NotFound />} />
      </Routes>
      <Outlet />
    </div>
  );
}