tfrere's picture
tfrere HF Staff
update
6bda4a6
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
};
}