import { useT } from "@agent-native/core/client/i18n";
import { IconSun, IconMoon } from "@tabler/icons-react";
import { useTheme } from "next-themes";
import { useState, useEffect } from "react";
import { Button } from "@/components/ui/button";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
import { getResolvedTheme } from "@/lib/theme";
import { cn } from "@/lib/utils";
export function ThemeToggle({ className }: { className?: string }) {
const { setTheme, resolvedTheme } = useTheme();
const t = useT();
const [mounted, setMounted] = useState(false);
useEffect(() => setMounted(true), []);
const resolved = getResolvedTheme(resolvedTheme);
const isDark = mounted ? resolved === "dark" : false;
const toggleTheme = () =>
setTheme(getResolvedTheme(resolvedTheme) === "dark" ? "light" : "dark");
return (
{t(isDark ? "commandPalette.toggleLight" : "commandPalette.toggleDark")}
);
}
export function SidebarThemeRow() {
const { setTheme, resolvedTheme } = useTheme();
const t = useT();
const [mounted, setMounted] = useState(false);
useEffect(() => setMounted(true), []);
const resolved = getResolvedTheme(resolvedTheme);
const isDark = mounted ? resolved === "dark" : false;
const toggleTheme = () =>
setTheme(getResolvedTheme(resolvedTheme) === "dark" ? "light" : "dark");
return (
);
}