chatbot-template/components/custom/theme-toggle.tsx

29 lines
597 B
TypeScript
Raw Normal View History

2024-10-23 12:21:30 -04:00
'use client';
2024-10-11 18:00:22 +05:30
2024-10-23 12:21:30 -04:00
import { useTheme } from 'next-themes';
import { useEffect, useLayoutEffect, useState } from 'react';
2024-10-11 18:00:22 +05:30
export function ThemeToggle() {
const { setTheme, theme } = useTheme();
const [mounted, setMounted] = useState(false);
2024-10-23 12:21:30 -04:00
useLayoutEffect(() => {
2024-10-11 18:00:22 +05:30
setMounted(true);
}, []);
if (!mounted) {
2024-10-23 12:21:30 -04:00
return <div className="cursor-pointer" />;
2024-10-11 18:00:22 +05:30
}
return (
<div
className="cursor-pointer"
onClick={() => {
2024-10-23 12:21:30 -04:00
setTheme(theme === 'dark' ? 'light' : 'dark');
2024-10-11 18:00:22 +05:30
}}
>
2024-10-23 12:21:30 -04:00
{`Toggle ${theme === 'light' ? 'dark' : 'light'} mode`}
2024-10-11 18:00:22 +05:30
</div>
);
}