diff --git a/moneymgr_web/src/routes/AccountRoute.tsx b/moneymgr_web/src/routes/AccountRoute.tsx index d87b2ee..af8e415 100644 --- a/moneymgr_web/src/routes/AccountRoute.tsx +++ b/moneymgr_web/src/routes/AccountRoute.tsx @@ -7,8 +7,10 @@ import { useParams } from "react-router-dom"; import { Movement, MovementApi } from "../api/MovementsApi"; import { useAccounts } from "../hooks/AccountsListProvider"; import { useAlert } from "../hooks/context_providers/AlertDialogProvider"; +import { useSelectAccount } from "../hooks/context_providers/ChooseAccountDialogProvider"; import { useConfirm } from "../hooks/context_providers/ConfirmDialogProvider"; import { useLoadingMessage } from "../hooks/context_providers/LoadingMessageProvider"; +import { useSnackbar } from "../hooks/context_providers/SnackbarProvider"; import { AccountWidget } from "../widgets/AccountWidget"; import { AmountWidget } from "../widgets/AmountWidget"; import { AsyncWidget } from "../widgets/AsyncWidget"; @@ -16,7 +18,6 @@ import { DateWidget } from "../widgets/DateWidget"; import { MoneyMgrWebRouteContainer } from "../widgets/MoneyMgrWebRouteContainer"; import { NewMovementWidget } from "../widgets/NewMovementWidget"; import { NotFoundRoute } from "./NotFound"; -import { useSelectAccount } from "../hooks/context_providers/ChooseAccountDialogProvider"; export function AccountRoute(): React.ReactElement { const loadingMessage = useLoadingMessage(); @@ -91,6 +92,7 @@ function MovementsTable(p: { const accounts = useAccounts(); const alert = useAlert(); const confirm = useConfirm(); + const snackbar = useSnackbar(); const chooseAccount = useSelectAccount(); @@ -103,8 +105,20 @@ function MovementsTable(p: { [accounts.get(movement.account_id)!] ); - // TODO - alert(target?.id?.toString() ?? "none"); + if (!target) return; + + try { + movement.account_id = target.id; + + await MovementApi.Update(movement); + + snackbar("The movement has been successfully moved!"); + + p.needReload(false); + } catch (e) { + console.error("Failed to update movement information!", e); + alert(`Failed to change movemlent account! ${e}`); + } }; // Delete movement