Files
frontend/src/core/middlewares/withAuth.js
Amirhossein Mahmoodi bc73725138 formatted
2024-07-09 13:58:13 +03:30

23 lines
666 B
JavaScript

"use client";
import { useAuth } from "@/lib/contexts/auth";
import { usePathname, useRouter } from "next/navigation";
import { useEffect } from "react";
function WithAuthMiddleware({ children }) {
const router = useRouter();
const pathName = usePathname();
const { isAuth, initAuthState } = useAuth();
useEffect(() => {
if (!initAuthState) return;
if (!isAuth) {
router.replace(`${process.env.NEXT_PUBLIC_API_URL}/login?_back=${encodeURIComponent(pathName)}`);
}
}, [isAuth, initAuthState]);
if (!initAuthState || !isAuth) return null;
return <>{children}</>;
}
export default WithAuthMiddleware;