- Implémentation complète du système d'administration (/admin) - Gestion des clients avec base de données JSON - Génération de token unique et QR code pour chaque client - Intégration des données client dans l'application (bungalow, WiFi, message) - Amélioration du composant WifiCard avec fallback de copie - Optimisation du hook useClientData pour chargement immédiat - Ajout de la variable d'environnement ADMIN_PASSWORD
31 lines
958 B
TypeScript
31 lines
958 B
TypeScript
"use client";
|
|
|
|
import { LogOut } from "lucide-react";
|
|
import { Button } from "@/components/ui/button";
|
|
import { useRouter } from "next/navigation";
|
|
|
|
export default function AdminLayout({ children }: { children: React.ReactNode }) {
|
|
const router = useRouter();
|
|
|
|
const handleLogout = () => {
|
|
localStorage.removeItem("adminPassword");
|
|
router.push("/admin/login");
|
|
};
|
|
|
|
return (
|
|
<div className="min-h-screen bg-background">
|
|
<header className="bg-white border-b border-gray-200 shadow-sm">
|
|
<div className="max-w-4xl mx-auto px-4 py-4 flex items-center justify-between">
|
|
<h1 className="text-xl font-bold text-primary">Administration</h1>
|
|
<Button variant="outline" size="sm" onClick={handleLogout}>
|
|
<LogOut className="h-4 w-4 mr-2" />
|
|
Déconnexion
|
|
</Button>
|
|
</div>
|
|
</header>
|
|
<main className="max-w-4xl mx-auto px-4 py-6">{children}</main>
|
|
</div>
|
|
);
|
|
}
|
|
|