20 lines
807 B
TypeScript
20 lines
807 B
TypeScript
import { Moon, Sun } from 'lucide-react';
|
|
import { useAppearance } from '@/hooks/use-appearance';
|
|
|
|
export default function PublicThemeToggle() {
|
|
const { resolvedAppearance, updateAppearance } = useAppearance();
|
|
const isDark = resolvedAppearance === 'dark';
|
|
|
|
return (
|
|
<button
|
|
type="button"
|
|
onClick={() => updateAppearance(isDark ? 'light' : 'dark')}
|
|
className="inline-flex size-10 items-center justify-center rounded-lg border border-border bg-background text-foreground transition hover:bg-muted"
|
|
aria-label={isDark ? 'Gunakan mode terang' : 'Gunakan mode gelap'}
|
|
title={isDark ? 'Mode terang' : 'Mode gelap'}
|
|
>
|
|
{isDark ? <Sun className="size-4" /> : <Moon className="size-4" />}
|
|
</button>
|
|
);
|
|
}
|