import type { CSSProperties, FC } from "react"; import { Button, Group, Skeleton, Stack, Text, Title } from "@mantine/core"; import { OperationIcon } from "@wealthledger/icons"; import { LoadingSkeleton } from "@wealthledger/ui"; import { useTranslation } from "react-i18next"; import { formatMoney } from "@/shared/lib"; import type { BankSummary } from "../../api/queries"; import { bankOperationAppearance } from "../../model/operation-appearance"; import classes from "./BankSummary.module.css"; const CATEGORY_COLUMNS = 2; type BankSummaryViewProps = { all?: boolean; data?: BankSummary; error: boolean; fetching: boolean; loading: boolean; retry: () => void; }; const BankSummaryViewCategories: FC = (props) => { const { t } = useTranslation(); if (props.data) { if (props.data.categories.length > 0) { return (
{props.data.categories.map(category => (
{category.categoryName}
{formatMoney(category.net, { withZeroCents: true })}
))}
); } return ( {t("bank.noExpenses")} ); } if (props.loading) { return ( ); } }; const BankSummaryView: FC = (props) => { const { t } = useTranslation(); return (
{t(props.all ? "bank.allSummary" : "bank.summary")} {props.data && ( {formatMoney(props.data.net, { withZeroCents: true })} )}
{props.error && ( {t(props.data ? "bank.refreshError" : "bank.error")} )} {props.data && props.fetching && {t("bank.refreshing")}}
); }; export { BankSummaryView };