diff --git a/ui/src/components/ThemeSwitcher.tsx b/ui/src/components/ThemeSwitcher.tsx new file mode 100644 index 0000000..1bff4f1 --- /dev/null +++ b/ui/src/components/ThemeSwitcher.tsx @@ -0,0 +1,60 @@ +import { Switch } from "../ui-library/switch"; +import { twMerge } from "tailwind-merge"; +import { useTheme } from "../contexts/ThemeContext"; + +export function ThemeSwitcher() { + const { theme, setTheme } = useTheme(); + + return ( + setTheme(theme === "dark" ? "light" : "dark")} + className={twMerge( + "p-2 rounded-full", + "bg-slate-100 dark:bg-slate-800", + "border border-slate-200 dark:border-slate-700", + "hover:bg-slate-200 dark:hover:bg-slate-700", + "transition-colors" + )} + > + + {theme === "dark" ? ( + + + + ) : ( + + + + )} + + {theme === "dark" + ? "Mode sombre" + : theme === "light" + ? "Mode clair" + : "Mode système"} + + + + ); +} diff --git a/ui/src/components/header.tsx b/ui/src/components/header.tsx index 9cbc99c..bc246ad 100644 --- a/ui/src/components/header.tsx +++ b/ui/src/components/header.tsx @@ -1,13 +1,10 @@ import { Button } from "../ui-library/button"; -import { Switch } from "../ui-library/switch"; import { twMerge } from "tailwind-merge"; import logo from "../assets/icon.jpg"; import { Link } from "react-router-dom"; -import { useTheme } from "../contexts/ThemeContext"; +import { ThemeSwitcher } from "./ThemeSwitcher"; export function Header() { - const { theme, setTheme } = useTheme(); - return ( <> @@ -72,56 +69,7 @@ export function Header() { S'inscrire - setTheme(theme === "dark" ? "light" : "dark")} - className={twMerge( - "p-2 rounded-full", - "bg-slate-100 dark:bg-slate-800", - "border border-slate-200 dark:border-slate-700", - "hover:bg-slate-200 dark:hover:bg-slate-700", - "transition-colors" - )} - > - - {theme === "dark" ? ( - - - - ) : ( - - - - )} - - {theme === "dark" - ? "Mode sombre" - : theme === "light" - ? "Mode clair" - : "Mode système"} - - - +