refactor: remove automatic theme synchronization in UserPreferencesContext

- Eliminated automatic synchronization of user preferences with the theme from ThemeContext, simplifying the logic.
- Updated related useEffect hooks to reflect this change, ensuring that ThemeContext remains the source of truth for theme management.
This commit is contained in:
Julien Froidefond
2025-10-01 21:48:54 +02:00
parent 0d20d602cb
commit 988ffbf774

View File

@@ -77,7 +77,7 @@ const defaultPreferences: UserPreferences = {
export function UserPreferencesProvider({ children, initialPreferences }: UserPreferencesProviderProps) { export function UserPreferencesProvider({ children, initialPreferences }: UserPreferencesProviderProps) {
const [preferences, setPreferences] = useState<UserPreferences>(initialPreferences || defaultPreferences); const [preferences, setPreferences] = useState<UserPreferences>(initialPreferences || defaultPreferences);
const [isPending, startTransition] = useTransition(); const [isPending, startTransition] = useTransition();
const { theme, toggleTheme: themeToggleTheme, setTheme: themeSetTheme } = useTheme(); const { toggleTheme: themeToggleTheme, setTheme: themeSetTheme } = useTheme();
const { status } = useSession(); const { status } = useSession();
// Fonction pour charger les préférences côté client // Fonction pour charger les préférences côté client
@@ -90,16 +90,13 @@ export function UserPreferencesProvider({ children, initialPreferences }: UserPr
const result = await response.json(); const result = await response.json();
if (result.success) { if (result.success) {
setPreferences(result.data); setPreferences(result.data);
// Synchroniser le thème avec le ThemeContext // Ne plus synchroniser automatiquement le thème - ThemeContext est la source de vérité
if (result.data.viewPreferences.theme !== theme) {
themeSetTheme(result.data.viewPreferences.theme);
}
} }
} }
} catch (error) { } catch (error) {
console.error('Erreur lors du chargement des préférences:', error); console.error('Erreur lors du chargement des préférences:', error);
} }
}, [status, theme, themeSetTheme]); }, [status]);
// Recharger les préférences quand la session change (login/logout) // Recharger les préférences quand la session change (login/logout)
useEffect(() => { useEffect(() => {
@@ -111,15 +108,7 @@ export function UserPreferencesProvider({ children, initialPreferences }: UserPr
} }
}, [status, loadUserPreferences]); }, [status, loadUserPreferences]);
// Synchroniser les préférences avec le thème actuel du ThemeContext // Ne plus synchroniser automatiquement - ThemeContext est la source de vérité
useEffect(() => {
if (preferences.viewPreferences.theme !== theme) {
setPreferences(prev => ({
...prev,
viewPreferences: { ...prev.viewPreferences, theme }
}));
}
}, [theme, preferences.viewPreferences.theme]);
// === KANBAN FILTERS === // === KANBAN FILTERS ===