import { useState , useEffect } from 'react' ; export default function useDarkMode ( ) { const setTheme = ( elm ) => { if ( elm ) { const darkMode = elm . classList . contains ( 'vscode-dark' ) ; document . documentElement . classList . remove ( `${ darkMode ? "light" : "dark" }` ) ; document . documentElement . classList . add ( `${ darkMode ? "dark" : "light" }` ) ; } } ; useEffect ( ( ) => { const mutationObserver = new MutationObserver ( ( mutationsList , observer ) => { const last = mutationsList . filter ( item => item . type === "attributes" || item . attributeName === 'class' ) . pop ( ) ; setTheme ( last ?. target as HTMLElement ) ; } ) ; setTheme ( document . body ) ; mutationObserver . observe ( document . body , { childList : false , attributes : true } ) ; return ( ) => { mutationObserver . disconnect ( ) ; } ; } , [ '' ] ) ; }