import { useEffect, useState } from "react";
// import { useTheme } from 'next-themes'
import { Label, Listbox, ListboxButton, ListboxOption, ListboxOptions } from "@headlessui/react";
import clsx from "clsx";
const themes = [
{ name: "Light", value: "light", icon: LightIcon },
{ name: "Dark", value: "dark", icon: DarkIcon },
{ name: "System", value: "system", icon: SystemIcon },
];
function LightIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
);
}
function DarkIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
);
}
function SystemIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
);
}
export function ThemeSelector(props: React.ComponentPropsWithoutRef>) {
const useTheme = () => {
return {
theme: "light",
setTheme: (theme: string) => {},
};
};
let { theme, setTheme } = useTheme();
let [mounted, setMounted] = useState(false);
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}
>
)}
))}
);
}