Spaces:
Configuration error
Configuration error
| import { useEffect } from 'react'; | |
| import { useDebugUMAPStore } from '../store'; | |
| /** | |
| * Hook pour gérer l'état visuel de l'application avec Zustand | |
| */ | |
| export function useVisualState() { | |
| const useCategoryColors = useDebugUMAPStore((state) => state.useCategoryColors); | |
| const baseGlyphSize = useDebugUMAPStore((state) => state.baseGlyphSize); | |
| const darkMode = useDebugUMAPStore((state) => state.darkMode); | |
| const showCentroids = useDebugUMAPStore((state) => state.showCentroids); | |
| const setUseCategoryColors = useDebugUMAPStore((state) => state.setUseCategoryColors); | |
| const setBaseGlyphSize = useDebugUMAPStore((state) => state.setBaseGlyphSize); | |
| const setDarkMode = useDebugUMAPStore((state) => state.setDarkMode); | |
| const setShowCentroids = useDebugUMAPStore((state) => state.setShowCentroids); | |
| // Écouter les changements de préférence système | |
| useEffect(() => { | |
| const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); | |
| const handleChange = (e) => { | |
| setDarkMode(e.matches); | |
| }; | |
| mediaQuery.addEventListener('change', handleChange); | |
| return () => { | |
| mediaQuery.removeEventListener('change', handleChange); | |
| }; | |
| }, []); // Pas de dépendances pour éviter la boucle infinie | |
| return { | |
| useCategoryColors, | |
| setUseCategoryColors, | |
| baseGlyphSize, | |
| setBaseGlyphSize, | |
| darkMode, | |
| setDarkMode, | |
| showCentroids, | |
| setShowCentroids | |
| }; | |
| } | |