import { Label, Listbox, ListboxButton, ListboxOption, ListboxOptions } from "@headlessui/react";
import React, { useEffect, useState } from "react";
import { useTheme } from "@/hooks/useTheme";
import clsx from "clsx";
const themes = [
{ name: "Clair", value: "light", icon: LightIcon },
{ name: "Sombre", value: "dark", icon: DarkIcon },
];
function LightIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
);
}
function DarkIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
);
}
export function ThemeSelector(props: React.ComponentPropsWithoutRef>) {
const [mounted, setMounted] = useState(false);
const { theme, setTheme } = useTheme();
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) {
return ;
}
return (
{themes.map((theme) => (
clsx("flex cursor-pointer items-center rounded-[0.625rem] p-1 select-none", {
"text-violet-500": selected,
"text-slate-900 dark:text-white": focus && !selected,
"text-slate-700 dark:text-slate-400": !focus && !selected,
"bg-slate-100 dark:bg-slate-900/40": focus,
})
}
>
{({ selected }) => (
<>
{theme.name}
>
)}
))}
);
}