Improve movement deletion

This commit is contained in:
Pierre HUBERT 2025-05-12 21:07:08 +02:00
parent 11d140826d
commit 9fe90c3527

View File

@ -89,7 +89,15 @@ export function AccountRoute(): React.ReactElement {
ready={movements !== undefined} ready={movements !== undefined}
errMsg="Failed to load the list of movements!" errMsg="Failed to load the list of movements!"
build={() => ( build={() => (
<MovementsTable needReload={reload} movements={movements!} /> <MovementsTable
needReload={reload}
movements={movements!}
onDeleteMovement={(del) => {
setMovements((movements) => {
return movements?.filter((m) => m.id !== del.id);
});
}}
/>
)} )}
/> />
</div> </div>
@ -102,6 +110,7 @@ export function AccountRoute(): React.ReactElement {
function MovementsTable(p: { function MovementsTable(p: {
movements: Movement[]; movements: Movement[];
needReload: (skipMovements: boolean) => void; needReload: (skipMovements: boolean) => void;
onDeleteMovement: (movement: Movement) => void;
}): React.ReactElement { }): React.ReactElement {
const accounts = useAccounts(); const accounts = useAccounts();
const alert = useAlert(); const alert = useAlert();
@ -162,7 +171,7 @@ function MovementsTable(p: {
} }
}; };
// Detach movement from account // Detach file from movement
const handleDetachFile = async (movement: Movement) => { const handleDetachFile = async (movement: Movement) => {
try { try {
if ( if (
@ -193,10 +202,9 @@ function MovementsTable(p: {
await MovementApi.Delete(movement); await MovementApi.Delete(movement);
const id = p.movements.findIndex((m) => movement.id === m.id); p.onDeleteMovement(movement);
p.movements.slice(id, id);
p.needReload(false); p.needReload(true);
} catch (e) { } catch (e) {
console.error("Failed to delete movement!", e); console.error("Failed to delete movement!", e);
alert(`Failed to delete movement! ${e}`); alert(`Failed to delete movement! ${e}`);