feat: improve dark mode contrast in Tower3D and IsolatedRoof3D components
This commit is contained in:
@@ -61,4 +61,24 @@ export function useTheme(): ThemeContextValue {
|
||||
const ctx = useContext(ThemeContext);
|
||||
if (!ctx) throw new Error('useTheme deve ser usado dentro de ThemeProvider');
|
||||
return ctx;
|
||||
}
|
||||
|
||||
export function useCanvasTheme(): 'light' | 'dark' {
|
||||
const [isDark, setIsDark] = useState(() => {
|
||||
if (typeof document === 'undefined') return false;
|
||||
return document.documentElement.classList.contains('dark');
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
const observer = new MutationObserver(() => {
|
||||
setIsDark(document.documentElement.classList.contains('dark'));
|
||||
});
|
||||
observer.observe(document.documentElement, {
|
||||
attributes: true,
|
||||
attributeFilter: ['class'],
|
||||
});
|
||||
return () => observer.disconnect();
|
||||
}, []);
|
||||
|
||||
return isDark ? 'dark' : 'light';
|
||||
}
|
||||
Reference in New Issue
Block a user