mirror of
https://github.com/mastodon/mastodon.git
synced 2026-05-16 09:16:17 -05:00
24 lines
555 B
TypeScript
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';
|
|
}
|