/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { Check, Moon, Sun } from 'lucide-react' import { useEffect } from 'react' import { useTranslation } from 'react-i18next' import { Button } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { useTheme } from '@/context/theme-provider' import { cn } from '@/lib/utils' export function ThemeSwitch() { const { t } = useTranslation() const { theme, setTheme } = useTheme() /* Update theme-color meta tag * when theme is updated */ useEffect(() => { const themeColor = theme === 'dark' ? '#020817' : '#fff' const metaThemeColor = document.querySelector("meta[name='theme-color']") if (metaThemeColor) metaThemeColor.setAttribute('content', themeColor) }, [theme]) return ( } > {t('Toggle theme')} setTheme('light')}> {t('Light')}{' '} setTheme('dark')}> {t('Dark')} setTheme('system')}> {t('System')} ) }