| 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; | |
| }; | |