Files
IoT_PreTester_Demo/V4.5/Frontend/iot-pre-tester-frontend/src/components/protected-route.tsx
T
2026-06-24 14:53:14 +02:00

30 lines
623 B
TypeScript

"use client"
import { useEffect, ReactNode } from "react"
import { useRouter } from "next/navigation"
import { useAuth } from "@/lib/auth-context"
interface ProtectedRouteProps {
children: ReactNode | ((props: { user: any; logout: () => void }) => ReactNode);
}
export function ProtectedRoute({ children }: ProtectedRouteProps) {
const { user, logout } = useAuth()
const router = useRouter()
useEffect(() => {
if (!user) {
router.push("/login")
}
}, [user, router])
if (!user) {
return null
}
return typeof children === "function"
? children({ user, logout })
: children
}