mastodon/app/javascript/mastodon/hooks/useTheme.ts
Echo 8da2fae6cc
Profile redesign: Account featured tab (#38529)
Co-authored-by: diondiondion <mail@diondiondion.com>
2026-04-02 12:33:32 +00:00

24 lines
555 B
TypeScript

import { useEffect, useState } from 'react';
import { isDarkMode } from '../utils/theme';
export function useTheme() {
const [darkMode, setDarkMode] = useState(() => isDarkMode());
useEffect(() => {
const mutationObserver = new MutationObserver(() => {
setDarkMode(isDarkMode());
});
mutationObserver.observe(document.documentElement, {
attributes: true,
attributeFilter: ['data-color-scheme'],
});
return () => {
mutationObserver.disconnect();
};
}, []);
return darkMode ? 'dark' : 'light';
}