From 73ddaf38fbc2a3caee7ff91124acdd2782f0d416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= Date: Thu, 20 Nov 2025 18:07:19 +0100 Subject: [PATCH] feat: Add theme selector to header --- components/Header.tsx | 40 +++++++++++++++------------ components/mode-toggle.tsx | 56 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 18 deletions(-) create mode 100644 components/mode-toggle.tsx diff --git a/components/Header.tsx b/components/Header.tsx index 04f410e..35ba4d2 100644 --- a/components/Header.tsx +++ b/components/Header.tsx @@ -3,6 +3,7 @@ import { useSession, signOut } from 'next-auth/react'; import { Button } from './ui/button'; import { useSettings } from '../context/SettingsContext'; +import { ModeToggle } from './mode-toggle'; export default function Header() { const { data: session } = useSession(); @@ -19,24 +20,27 @@ export default function Header() { {settings.name || 'Club Scolaire'} - {session && ( -
- - {session.user.email} ( - {session.user.role === 'MEMBER' - ? 'Membre' - : session.user.role === 'ADMIN' - ? 'Bureau' - : session.user.role === 'SUPER_ADMIN' - ? 'Gestionnaire' - : session.user.role} - ) - - -
- )} +
+ + {session && ( + <> + + {session.user.email} ( + {session.user.role === 'MEMBER' + ? 'Membre' + : session.user.role === 'ADMIN' + ? 'Bureau' + : session.user.role === 'SUPER_ADMIN' + ? 'Gestionnaire' + : session.user.role} + ) + + + + )} +
); diff --git a/components/mode-toggle.tsx b/components/mode-toggle.tsx new file mode 100644 index 0000000..ba9be82 --- /dev/null +++ b/components/mode-toggle.tsx @@ -0,0 +1,56 @@ +"use client" + +import * as React from "react" +import { Moon, Sun, Laptop } from "lucide-react" +import { useTheme } from "next-themes" + +import { Button } from "@/components/ui/button" +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" + +export function ModeToggle() { + const { setTheme, theme } = useTheme() + + return ( + + + + + +
+ + + +
+
+
+ ) +}