From e2a3532e8ca0e6e862db7e477a8b0ba8d4b9c06c Mon Sep 17 00:00:00 2001 From: Andreas Binczyk Date: Thu, 4 Jun 2026 20:11:17 +0200 Subject: [PATCH] feat: update task sorting to maintain current page context - Modified `loadAufgaben` to accept sort parameter and update state - Updated all `loadAufgaben` calls to pass current sort value - Changed sort change handler to reload current page instead of resetting to page 1 - Removed redundant sort state update in handler - Database file updated with test data changes This improves UX by maintaining pagination context when changing sort order rather than always resetting to the first page. --- app/page.tsx | 20 ++++++++++---------- todo.db | Bin 12288 -> 12288 bytes 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 2949f7a..ce51a1e 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -32,10 +32,11 @@ export default function TodoApp() { }); // Lade Aufgaben vom Server mit Paginierung und Sortierung - const loadAufgaben = async (page: number = 1) => { + const loadAufgaben = async (page: number = 1, sort: SortOption = sortierung) => { try { setIsLoading(true); - const response = await fetch(`/api/tasks?page=${page}&limit=10&sort=${sortierung}`); + setSortierung(sort); + const response = await fetch(`/api/tasks?page=${page}&limit=10&sort=${sort}`); if (response.ok) { const data = await response.json(); setAufgaben(data.aufgaben); @@ -50,7 +51,7 @@ export default function TodoApp() { // Initial laden useEffect(() => { - loadAufgaben(1); + loadAufgaben(1, sortierung); }, []); // Aufgaben werden bereits serverseitig sortiert, keine clientseitige Sortierung nötig @@ -71,7 +72,7 @@ export default function TodoApp() { if (response.ok) { setNeueAufgabe(''); // Zur ersten Seite zurück, wenn neue Aufgabe hinzugefügt wird - await loadAufgaben(1); + await loadAufgaben(1, sortierung); } } catch (error) { console.error('Fehler beim Hinzufügen:', error); @@ -87,8 +88,8 @@ export default function TodoApp() { }); if (response.ok) { - // Aktuelle Seite neu laden oder zur vorherigen, wenn leer - await loadAufgaben(pagination.page); + // Aktuelle Seite neu laden + await loadAufgaben(pagination.page, sortierung); } } catch (error) { console.error('Fehler beim Löschen:', error); @@ -103,18 +104,17 @@ export default function TodoApp() { }); if (response.ok) { - await loadAufgaben(pagination.page); + await loadAufgaben(pagination.page, sortierung); } } catch (error) { console.error('Fehler beim Aktualisieren:', error); } }; - // Sortierung ändern und Aufgaben neu laden + // Sortierung ändern und Aufgaben auf aktueller Seite neu laden const handleSortierungAendern = async (e: React.ChangeEvent) => { const neueSortierung = e.target.value as SortOption; - setSortierung(neueSortierung); - await loadAufgaben(1); + await loadAufgaben(pagination.page, neueSortierung); }; return ( diff --git a/todo.db b/todo.db index d1d5f9423d817da60d47d1beb5b68e9ffcef532a..0c7a7168128a3cdf393b5d119b727bbaedb278ce 100644 GIT binary patch delta 114 zcmZojXh@hK&B!-V#+i|CW5N=CIbOaR2L7k~r})?NPvNiRkK(uDm*;2Ud&zf>Zxdh5 t#=