import type { FC } from "react"; import { ActionIcon, Button, Group, Paper, SimpleGrid, Skeleton, Stack, Switch, Title, } from "@mantine/core"; import { AddIcon, CategoriesIcon } from "@wealthledger/icons"; import { LoadingSkeleton, StateView } from "@wealthledger/ui"; import { useTranslation } from "react-i18next"; import { Link } from "react-router"; import { BankCardFace, BankFeedback, BankPeriodPicker, BankSummaryView, } from "@/entities/bank-card"; import type { CardsPageVm } from "./CardsPage.vm"; import classes from "./CardsPage.module.css"; type CardsPageViewProps = { vm: CardsPageVm }; const CardsPageViewCards: FC = (props) => { const { t } = useTranslation(); const { vm } = props; if (vm.items) { if (vm.items.length > 0) { return ( {vm.items.map(card => ( ))} ); } if (!vm.cards.error) { const text = t(vm.archive ? "bank.emptyHint" : "bank.noActive"); return ( {t("bank.addCard")}} text={text} title={t("bank.empty")} /> ); } } if (vm.cards.isLoading) { return ( ); } return null; }; const CardsPageView: FC = (props) => { const { vm } = props; const { t } = useTranslation(); return ( {t("bank.title")} {vm.cards.error && ( )} {Boolean(vm.categories.data?.length || vm.cards.data?.length) && ( )} ); }; export { CardsPageView };