"use client";
import React from "react";
import { RefreshCw } from "lucide-react";
import { useAuth } from "@/components/auth/authContext";
import { Button } from "@/components/ui/button";
import { Alert, AlertTitle, AlertDescription } from "@/components/ui/alert";
import {
Card,
CardHeader,
CardTitle,
CardDescription,
CardContent,
CardFooter,
} from "@/components/ui/card";
export default function AuthGate({ children }) {
const { status, error, retry } = useAuth();
const canRetry = typeof retry === "function";
if (status === "authenticated") {
return children;
}
if (status === "error") {
return (
Sitzungsprüfung fehlgeschlagen
Die Sitzung konnte nicht geprüft werden.
Fehler
{error ||
"Bitte prüfen Sie Ihre Verbindung und versuchen Sie es erneut."}
);
}
// "unauthenticated" -> redirect happens in AuthProvider.
// Keeping this message is fine because TopNav indicator is not shown in this state.
if (status === "unauthenticated") {
return (
Weiterleitung
Sie werden zum Login weitergeleitet.
Bitte warten…
);
}
// Default: loading (or unknown)
// RHL-032:
// Do not render a second "session checking" UI here.
// The TopNav SessionIndicator is the single source of feedback.
return null;
}