import type { CSSProperties, FC } from "react"; import { 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/types"; 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; }; 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 ( ); } return null; }; const BankSummaryView: FC = (props) => { const { t } = useTranslation(); return (
{t(props.all ? "bank.allSummary" : "bank.summary")} {props.data && (
{t("bank.summary")}
{formatMoney(props.data.expenses, { withZeroCents: true })}
{t("bank.refunds")}
{formatMoney(props.data.refunds, { withZeroCents: true })}
{t("bank.net")}
{formatMoney(props.data.net, { withZeroCents: true })}
)}
{props.error && !props.data && {t("bank.error")}}
); }; export { BankSummaryView };