'use client';
import { useMemo } from 'react';
import { CheckCircle, Moon, Sun } from 'lucide-react';
import { useTheme } from 'next-themes';
import { Button } from '../shadcn/button';
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSub,
DropdownMenuSubContent,
DropdownMenuSubTrigger,
DropdownMenuTrigger,
} from '../shadcn/dropdown-menu';
import { If } from './if';
import { Trans } from './trans';
const MODES = ['light', 'dark', 'system'];
export function ModeToggle() {
const { setTheme } = useTheme();
const Items = useMemo(() => {
return MODES.map((mode) => {
return (
{
setTheme(mode);
setCookeTheme(mode);
}}
>
);
});
}, [setTheme]);
return (
{Items}
);
}
export function SubMenuModeToggle() {
const { setTheme, theme, resolvedTheme } = useTheme();
const MenuItems = useMemo(
() =>
['light', 'dark', 'system'].map((mode) => {
return (
{
setTheme(mode);
setCookeTheme(mode);
}}
>
);
}),
[setTheme, theme],
);
return (
{resolvedTheme === 'light' ? (
) : (
)}
{MenuItems}
);
}
function setCookeTheme(theme: string) {
document.cookie = `theme=${theme}; path=/; max-age=31536000`;
}