- Installation de next-themes - Création du composant ThemeToggle avec icônes soleil/lune - Intégration du ThemeProvider dans le layout - Ajout du toggle dans la navigation mobile et le header admin - Adaptation des couleurs pour le dark mode (tropical chic) - Mise à jour des composants UI (Card, Button) pour le dark mode - Adaptation des composants principaux (Layout, WifiCard, etc.)
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
"use client";
|
|
|
|
import { LogOut } from "lucide-react";
|
|
import { Button } from "@/components/ui/button";
|
|
import { useRouter } from "next/navigation";
|
|
import { ThemeToggle } from "@/components/ThemeToggle";
|
|
|
|
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 dark:bg-background-dark">
|
|
<header className="bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-800 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 dark:text-primary">Administration</h1>
|
|
<div className="flex items-center gap-2">
|
|
<ThemeToggle />
|
|
<Button variant="outline" size="sm" onClick={handleLogout} className="dark:border-gray-700 dark:text-gray-300">
|
|
<LogOut className="h-4 w-4 mr-2" />
|
|
Déconnexion
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
<main className="max-w-4xl mx-auto px-4 py-6">{children}</main>
|
|
</div>
|
|
);
|
|
}
|
|
|