File size: 638 Bytes
db14b86 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import { useEffect, useState } from 'react';
const checkIsDarkMode = () => {
try {
return window.matchMedia('(prefers-color-scheme: dark)').matches;
} catch {
return false;
}
};
export const useIsDarkMode = () => {
const [isDarkMode, setIsDarkMode] = useState(checkIsDarkMode());
useEffect(() => {
const mqList = window.matchMedia('(prefers-color-scheme: dark)');
const listener = (event: any) => {
setIsDarkMode(event.matches);
};
mqList.addEventListener('change', listener);
return () => {
mqList.removeEventListener('change', listener);
};
}, []);
return isDarkMode;
};
|