From 5eb37e631f75dd9c5b75f1bfb64283c3a11280a7 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Thu, 27 Nov 2025 11:50:09 +0100 Subject: [PATCH] feat: add external URL support for bank accounts, allowing users to link to their bank's portal --- app/accounts/page.tsx | 30 ++++++++++++++++++++++++- components/import/ofx-import-dialog.tsx | 2 ++ lib/types.ts | 1 + prisma/schema.prisma | 1 + services/account.service.ts | 4 ++++ services/banking.service.ts | 1 + 6 files changed, 38 insertions(+), 1 deletion(-) diff --git a/app/accounts/page.tsx b/app/accounts/page.tsx index c36b340..f33ec40 100644 --- a/app/accounts/page.tsx +++ b/app/accounts/page.tsx @@ -36,6 +36,7 @@ import { Wallet, PiggyBank, RefreshCw, + ExternalLink, } from "lucide-react"; import type { Account } from "@/lib/types"; import { cn } from "@/lib/utils"; @@ -55,13 +56,14 @@ const accountTypeLabels = { }; export default function AccountsPage() { - const { data, isLoading, refresh, update } = useBankingData(); + const { data, isLoading, refresh } = useBankingData(); const [editingAccount, setEditingAccount] = useState(null); const [isDialogOpen, setIsDialogOpen] = useState(false); const [formData, setFormData] = useState({ name: "", type: "CHECKING" as Account["type"], folderId: "folder-root", + externalUrl: "", }); if (isLoading || !data) { @@ -88,6 +90,7 @@ export default function AccountsPage() { name: account.name, type: account.type, folderId: account.folderId || "folder-root", + externalUrl: account.externalUrl || "", }); setIsDialogOpen(true); }; @@ -101,6 +104,7 @@ export default function AccountsPage() { name: formData.name, type: formData.type, folderId: formData.folderId, + externalUrl: formData.externalUrl || null, }; await updateAccount(updatedAccount); refresh(); @@ -244,6 +248,17 @@ export default function AccountsPage() { )}

)} + {account.externalUrl && ( + + + Accéder au portail banque + + )} ); @@ -306,6 +321,19 @@ export default function AccountsPage() { +
+ + + setFormData({ ...formData, externalUrl: e.target.value }) + } + placeholder="https://..." + /> +

+ URL personnalisée vers le portail de votre banque +

+