import { useTheme } from '@/components/theme-provider'; | |
import { Button } from '@/components/ui/button'; | |
import { | |
DropdownMenu, | |
DropdownMenuContent, | |
DropdownMenuItem, | |
DropdownMenuTrigger, | |
} from '@/components/ui/dropdown-menu'; | |
import { Moon, Sun } from 'lucide-react'; | |
export function ModeToggle() { | |
const { setTheme } = useTheme(); | |
return ( | |
<DropdownMenu> | |
<DropdownMenuTrigger asChild> | |
<Button variant="outline" size="icon"> | |
<Sun className="h-[1.2rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" /> | |
<Moon className="absolute h-[1.2rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" /> | |
<span className="sr-only">Toggle theme</span> | |
</Button> | |
</DropdownMenuTrigger> | |
<DropdownMenuContent align="end"> | |
<DropdownMenuItem onClick={() => setTheme('light')}> | |
Light | |
</DropdownMenuItem> | |
<DropdownMenuItem onClick={() => setTheme('dark')}> | |
Dark | |
</DropdownMenuItem> | |
<DropdownMenuItem onClick={() => setTheme('system')}> | |
System | |
</DropdownMenuItem> | |
</DropdownMenuContent> | |
</DropdownMenu> | |
); | |
} | |
const Demo = () => { | |
return ( | |
<div> | |
<div> | |
<ModeToggle></ModeToggle> | |
</div> | |
<Button>Destructive</Button> | |
</div> | |
); | |
}; | |
export default Demo; | |