import { index, show } from '@/actions/App/Http/Controllers/AccountController'; import { AccountBalanceChart } from '@/components/accounts/account-balance-chart'; import { BalancesModal } from '@/components/accounts/balances-modal'; import { DeleteAccountDialog } from '@/components/accounts/delete-account-dialog'; import { EditAccountDialog } from '@/components/accounts/edit-account-dialog'; import { ImportBalancesDrawer } from '@/components/accounts/import-balances-drawer'; import { UpdateBalanceDialog } from '@/components/accounts/update-balance-dialog'; import { EncryptedText } from '@/components/encrypted-text'; import HeadingSmall from '@/components/heading-small'; import { TransactionList } from '@/components/transactions/transaction-list'; import { Button } from '@/components/ui/button'; import { ButtonGroup } from '@/components/ui/button-group'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import AppSidebarLayout from '@/layouts/app/app-sidebar-layout'; import { BreadcrumbItem } from '@/types'; import { Account, Bank, formatAccountType, isTransactionalAccount, } from '@/types/account'; import { Category } from '@/types/category'; import { Head } from '@inertiajs/react'; import { ChevronDown } from 'lucide-react'; import { useState } from 'react'; interface Props { account: Account; categories: Category[]; accounts: Account[]; banks: Bank[]; } export default function AccountShow({ account, categories, accounts, banks, }: Props) { const [editOpen, setEditOpen] = useState(false); const [deleteOpen, setDeleteOpen] = useState(false); const [updateBalanceOpen, setUpdateBalanceOpen] = useState(false); const [importBalancesOpen, setImportBalancesOpen] = useState(false); const [balancesOpen, setBalancesOpen] = useState(false); const [chartRefreshKey, setChartRefreshKey] = useState(0); function handleBalanceUpdated() { setChartRefreshKey((prev) => prev + 1); } const breadcrumbs: BreadcrumbItem[] = [ { title: 'Accounts', href: index().url, }, { title: ( ), href: show.url(account.id), }, ]; return (
{account.bank?.logo ? ( {account.bank.name} ) : (
{account.bank?.name?.charAt(0) || '?'}
)} } description={`${account.bank?.name || 'Unknown Bank'} ยท ${formatAccountType(account.type)}`} />
setBalancesOpen(true)} > See balances setEditOpen(true)} > Edit account setDeleteOpen(true)} variant="destructive" > Delete
setUpdateBalanceOpen(true)} /> {isTransactionalAccount(account) && ( )}
); }