feat: update settings page and theme context for user preferences
- Replaced `SettingsPageClient` with `SettingsIndexPageClient` to fetch and display user preferences on the settings page. - Integrated `userPreferencesService` to retrieve all preferences asynchronously, enhancing data handling. - Refactored theme management in `ThemeContext` to use `updateViewPreferences` for saving theme changes, improving error handling and user feedback. - Marked the task for creating dedicated config sub-pages as complete in TODO.md.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
'use client';
|
||||
|
||||
import { createContext, useContext, useEffect, useState, ReactNode } from 'react';
|
||||
import { userPreferencesClient } from '@/clients/user-preferences-client';
|
||||
import { updateViewPreferences } from '@/actions/preferences';
|
||||
|
||||
type Theme = 'light' | 'dark';
|
||||
|
||||
@@ -38,11 +38,14 @@ export function ThemeProvider({ children, initialTheme = 'dark' }: ThemeProvider
|
||||
const newTheme = theme === 'dark' ? 'light' : 'dark';
|
||||
setThemeState(newTheme);
|
||||
|
||||
// Sauvegarder en base de façon asynchrone via le client
|
||||
// Sauvegarder en base de façon asynchrone via server action
|
||||
try {
|
||||
await userPreferencesClient.updateViewPreferences({
|
||||
const result = await updateViewPreferences({
|
||||
theme: newTheme
|
||||
});
|
||||
if (!result.success) {
|
||||
console.error('Erreur lors de la sauvegarde du thème:', result.error);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la sauvegarde du thème:', error);
|
||||
}
|
||||
@@ -51,11 +54,14 @@ export function ThemeProvider({ children, initialTheme = 'dark' }: ThemeProvider
|
||||
const setTheme = async (newTheme: Theme) => {
|
||||
setThemeState(newTheme);
|
||||
|
||||
// Sauvegarder en base de façon asynchrone via le client
|
||||
// Sauvegarder en base de façon asynchrone via server action
|
||||
try {
|
||||
await userPreferencesClient.updateViewPreferences({
|
||||
const result = await updateViewPreferences({
|
||||
theme: newTheme
|
||||
});
|
||||
if (!result.success) {
|
||||
console.error('Erreur lors de la sauvegarde du thème:', result.error);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la sauvegarde du thème:', error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user