"use client";
import posthog from "posthog-js";
import { HugeiconsIcon } from "@hugeicons/react";
import { Moon02Icon, Sun01Icon } from "@hugeicons/core-free-icons";
import { useTheme } from "next-themes";
import { Button } from "@/components/ui/button";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
export function ThemeToggle() {
const { setTheme, resolvedTheme } = useTheme();
const handleThemeChange = (newTheme: string) => {
posthog.capture("theme_toggled", {
previous_theme: resolvedTheme,
new_theme: newTheme,
});
setTheme(newTheme);
};
return (
<DropdownMenu>
<DropdownMenuTrigger render={<Button variant="outline" size="icon-xs" />}>
<HugeiconsIcon
icon={Sun01Icon}
strokeWidth={2}
className="h-3.5! w-3.5! rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"
/>
<HugeiconsIcon
icon={Moon02Icon}
strokeWidth={2}
className="absolute h-3.5! w-3.5! rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"
/>
<span className="sr-only">Toggle theme</span>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem onClick={() => handleThemeChange("light")}>
Light
</DropdownMenuItem>
<DropdownMenuItem onClick={() => handleThemeChange("dark")}>
Dark
</DropdownMenuItem>
<DropdownMenuItem onClick={() => handleThemeChange("system")}>
System
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
}