From 82186259d1fc824039b7dc873498ccd7d09dc1e3 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Wed, 9 Apr 2025 18:47:05 +0200 Subject: [PATCH] Can update account name --- moneymgr_web/src/api/AccountApi.ts | 13 ++++++++++++ moneymgr_web/src/routes/AccountsRoute.tsx | 26 ++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/moneymgr_web/src/api/AccountApi.ts b/moneymgr_web/src/api/AccountApi.ts index eeaa2b6..2016c7c 100644 --- a/moneymgr_web/src/api/AccountApi.ts +++ b/moneymgr_web/src/api/AccountApi.ts @@ -49,4 +49,17 @@ export class AccountApi { method: "PUT", }); } + + /** + * Update account + */ + static async Update(account: Account): Promise { + await APIClient.exec({ + uri: `/account/${account.id}`, + method: "PUT", + jsonData: { + name: account.name, + }, + }); + } } diff --git a/moneymgr_web/src/routes/AccountsRoute.tsx b/moneymgr_web/src/routes/AccountsRoute.tsx index 8a4779a..c35f120 100644 --- a/moneymgr_web/src/routes/AccountsRoute.tsx +++ b/moneymgr_web/src/routes/AccountsRoute.tsx @@ -19,9 +19,9 @@ export function AccountsRoute(): React.ReactElement { const setDefaultAccount = async (account: Account) => { try { - snackbar("Default account successfully updated!"); + await AccountApi.SetDefaultAccount(account); - AccountApi.SetDefaultAccount(account); + snackbar("Default account successfully updated!"); await accounts.reload(); @@ -33,9 +33,25 @@ export function AccountsRoute(): React.ReactElement { } }; + const updateAccount = async (account: Account) => { + try { + await AccountApi.Update(account); + + snackbar("Account successfully updated!"); + + await accounts.reload(); + + return accounts.get(account.id); + } catch (e) { + console.error("Failed to update account!", e); + alert(`Failed to update account! ${e}`); + return account; + } + }; + const columns: GridColDef<(typeof list)[number]>[] = [ { field: "id", headerName: "ID", flex: 1 }, - { field: "name", headerName: "Name", flex: 6 }, + { field: "name", headerName: "Name", flex: 6, editable: true }, { field: "time_create", headerName: "Time created", @@ -88,6 +104,10 @@ export function AccountsRoute(): React.ReactElement { return setDefaultAccount(updated); } + if (updated.name !== original.name) { + return updateAccount(updated); + } + return original as any; }} />