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 ( ); }