Files
A-Team-Security-Infra-Agent…/frontend/src/hooks/useTheme.ts

21 lines
529 B
TypeScript

import { useState, useCallback, useEffect } from 'react';
type Theme = 'light' | 'dark';
export function useTheme() {
const [theme, setTheme] = useState<Theme>(() => {
return (localStorage.getItem('theme') as Theme) || 'light';
});
useEffect(() => {
document.documentElement.className = theme;
localStorage.setItem('theme', theme);
}, [theme]);
const toggle = useCallback(() => {
setTheme((t) => (t === 'dark' ? 'light' : 'dark'));
}, []);
return { theme, toggle, isDark: theme === 'dark' };
}