()
| 27 | * that read CSS variables (node/edge/label colors, graph background). |
| 28 | */ |
| 29 | export function useThemeKey(): string { |
| 30 | const [key, setKey] = useState(readThemeKey); |
| 31 | |
| 32 | useEffect(() => { |
| 33 | const observer = new MutationObserver(() => { |
| 34 | setKey(readThemeKey()); |
| 35 | }); |
| 36 | observer.observe(document.documentElement, { |
| 37 | attributes: true, |
| 38 | attributeFilter: ['data-theme', 'data-mode'], |
| 39 | }); |
| 40 | return () => observer.disconnect(); |
| 41 | }, []); |
| 42 | |
| 43 | return key; |
| 44 | } |
no test coverage detected