From 9fe90c35274db32c1f88a730a2fcd8840ddddbaa Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Mon, 12 May 2025 21:07:08 +0200 Subject: [PATCH] Improve movement deletion --- moneymgr_web/src/routes/AccountRoute.tsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/moneymgr_web/src/routes/AccountRoute.tsx b/moneymgr_web/src/routes/AccountRoute.tsx index 9fc4431..42c3cd3 100644 --- a/moneymgr_web/src/routes/AccountRoute.tsx +++ b/moneymgr_web/src/routes/AccountRoute.tsx @@ -89,7 +89,15 @@ export function AccountRoute(): React.ReactElement { ready={movements !== undefined} errMsg="Failed to load the list of movements!" build={() => ( - + { + setMovements((movements) => { + return movements?.filter((m) => m.id !== del.id); + }); + }} + /> )} /> @@ -102,6 +110,7 @@ export function AccountRoute(): React.ReactElement { function MovementsTable(p: { movements: Movement[]; needReload: (skipMovements: boolean) => void; + onDeleteMovement: (movement: Movement) => void; }): React.ReactElement { const accounts = useAccounts(); const alert = useAlert(); @@ -162,7 +171,7 @@ function MovementsTable(p: { } }; - // Detach movement from account + // Detach file from movement const handleDetachFile = async (movement: Movement) => { try { if ( @@ -193,10 +202,9 @@ function MovementsTable(p: { await MovementApi.Delete(movement); - const id = p.movements.findIndex((m) => movement.id === m.id); - p.movements.slice(id, id); + p.onDeleteMovement(movement); - p.needReload(false); + p.needReload(true); } catch (e) { console.error("Failed to delete movement!", e); alert(`Failed to delete movement! ${e}`);