feat: refactor user preferences management
- Marked all user preferences actions as complete in TODO.md. - Updated `user-preferences-client.ts` to remove outdated mutation methods, now handled by server actions. - Deleted unused API routes for column visibility, kanban filters, and view preferences. - Refactored `UserPreferencesContext.tsx` to utilize server actions for updates, improving performance with `useTransition`.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { httpClient } from './base/http-client';
|
||||
import { UserPreferences, KanbanFilters, ViewPreferences, ColumnVisibility } from '@/lib/types';
|
||||
import { UserPreferences } from '@/lib/types';
|
||||
|
||||
export interface UserPreferencesResponse {
|
||||
success: boolean;
|
||||
@@ -8,14 +8,9 @@ export interface UserPreferencesResponse {
|
||||
error?: string;
|
||||
}
|
||||
|
||||
export interface UserPreferencesUpdateResponse {
|
||||
success: boolean;
|
||||
message?: string;
|
||||
error?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Client HTTP pour les préférences utilisateur
|
||||
* Client HTTP pour les préférences utilisateur (lecture seule)
|
||||
* Les mutations sont gérées par les server actions dans actions/preferences.ts
|
||||
*/
|
||||
export const userPreferencesClient = {
|
||||
/**
|
||||
@@ -29,49 +24,5 @@ export const userPreferencesClient = {
|
||||
}
|
||||
|
||||
return response.data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Sauvegarde toutes les préférences utilisateur
|
||||
*/
|
||||
async savePreferences(preferences: UserPreferences): Promise<void> {
|
||||
const response = await httpClient.put<UserPreferencesUpdateResponse>('/user-preferences', preferences);
|
||||
|
||||
if (!response.success) {
|
||||
throw new Error(response.error || 'Erreur lors de la sauvegarde des préférences');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Met à jour les filtres Kanban
|
||||
*/
|
||||
async updateKanbanFilters(filters: Partial<KanbanFilters>): Promise<void> {
|
||||
const response = await httpClient.patch<UserPreferencesUpdateResponse>('/user-preferences/kanban-filters', filters);
|
||||
|
||||
if (!response.success) {
|
||||
throw new Error(response.error || 'Erreur lors de la mise à jour des filtres Kanban');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Met à jour les préférences de vue
|
||||
*/
|
||||
async updateViewPreferences(preferences: Partial<ViewPreferences>): Promise<void> {
|
||||
const response = await httpClient.patch<UserPreferencesUpdateResponse>('/user-preferences/view-preferences', preferences);
|
||||
|
||||
if (!response.success) {
|
||||
throw new Error(response.error || 'Erreur lors de la mise à jour des préférences de vue');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Met à jour la visibilité des colonnes
|
||||
*/
|
||||
async updateColumnVisibility(visibility: Partial<ColumnVisibility>): Promise<void> {
|
||||
const response = await httpClient.patch<UserPreferencesUpdateResponse>('/user-preferences/column-visibility', visibility);
|
||||
|
||||
if (!response.success) {
|
||||
throw new Error(response.error || 'Erreur lors de la mise à jour de la visibilité des colonnes');
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user