import { ActionIcon, Button, Group, Pagination, Select, Skeleton, Stack, Text, Title, } from "@mantine/core"; import { AddIcon, DeleteIcon, EditIcon, RestoreIcon, } from "@wealthledger/icons"; import { LoadingSkeleton, StateView } from "@wealthledger/ui"; import { type FC } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router"; import { BankCardFace, BankFeedback, BankPeriodPicker, BankSummaryView, } from "@/entities/bank-card"; import type { CardPageVm } from "./CardPage.vm"; import { CardHistory } from "./CardHistory.view"; import classes from "./CardPage.module.css"; import { useCardPagePresentationVm } from "./CardPagePresentation.vm"; type CardPageViewProps = { vm: CardPageVm }; const CardPageView: FC = (props) => { const { vm } = props; const { getControlProps, getItemProps, onPageChange, paginationRef, } = useCardPagePresentationVm(vm); const { t } = useTranslation(); const card = vm.card; const archiveActionLabel = t(card?.archivedAt ? "bank.restore" : "bank.archive"); if (!card) { if (vm.cardLoading) return ( ); const errorTitle = t(vm.notFound ? "bank.notFound" : "bank.error"); return ( {!vm.notFound && ( )} )} error text={t("bank.back")} title={errorTitle} /> ); } return ( {card.name}
{card.archivedAt ? : }
{!!vm.archiveError && ( )} {card.archivedAt && {t("bank.archiveHint")}} {vm.cardError && vm.card && ( )}
{vm.cardsFeedback && ( )} {t("bank.operations")}