diff --git a/src/components/daily/PendingTasksSection.tsx b/src/components/daily/PendingTasksSection.tsx index 5a06842..25363f6 100644 --- a/src/components/daily/PendingTasksSection.tsx +++ b/src/components/daily/PendingTasksSection.tsx @@ -70,9 +70,12 @@ export function PendingTasksSection({ const handleArchiveTask = async (checkboxId: string) => { try { await dailyClient.archiveCheckbox(checkboxId); - await loadPendingTasks(); // Recharger la liste + // Mise à jour optimiste de l'état local + setPendingTasks(prev => prev.filter(task => task.id !== checkboxId)); } catch (error) { console.error('Erreur lors de l\'archivage:', error); + // En cas d'erreur, recharger pour être sûr + await loadPendingTasks(); } }; @@ -84,8 +87,15 @@ export function PendingTasksSection({ // Gérer la suppression d'une tâche const handleDeleteTask = async (checkboxId: string) => { - await onDeleteCheckbox(checkboxId); - await loadPendingTasks(); // Recharger la liste + try { + await onDeleteCheckbox(checkboxId); + // Mise à jour optimiste de l'état local + setPendingTasks(prev => prev.filter(task => task.id !== checkboxId)); + } catch (error) { + console.error('Erreur lors de la suppression:', error); + // En cas d'erreur, recharger pour être sûr + await loadPendingTasks(); + } }; // Gérer le déplacement d'une tâche à aujourd'hui @@ -94,12 +104,15 @@ export function PendingTasksSection({ const result = await moveCheckboxToToday(checkboxId); if (result.success) { - await loadPendingTasks(); // Recharger la liste des tâches en attente + // Mise à jour optimiste de l'état local + setPendingTasks(prev => prev.filter(task => task.id !== checkboxId)); if (onRefreshDaily) { await onRefreshDaily(); // Rafraîchir la vue daily principale } } else { console.error('Erreur lors du déplacement vers aujourd\'hui:', result.error); + // En cas d'erreur, recharger pour être sûr + await loadPendingTasks(); } }); };