import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { ComponentType } from "react"; const withAuth =
(WrappedComponent: ComponentType
) => {
const WithAuthComponent = (props: P) => {
const [isAuthenticated, setIsAuthenticated] = useState(false);
const router = useRouter();
useEffect(() => {
const token = localStorage.getItem("token");
if (!token) {
router.replace("/login");
} else {
setIsAuthenticated(true);
}
}, []);
if (!isAuthenticated) {
return null;
}
return