import { Card, Group, Stack, Text } from "@mantine/core"; import type { FC } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-router"; import { formatMoney } from "@/entities/portfolio"; import type { BrokerageAccountCard } from "../model/display"; import { accountTypeKey } from "../model/display"; import classes from "./BrokerageAccountList.module.css"; type BrokerageAccountListProps = { accounts: BrokerageAccountCard[] }; type BrokerageAccountSummaryProps = { summary: BrokerageAccountCard["summary"]; }; const BrokerageAccountSummary: FC = (props) => { const { summary } = props; const { t } = useTranslation(); if (summary.state === "unavailable") return ( {t("accounts.summaryUnavailable")} ); if (summary.state === "empty") return ( {t("accounts.summaryEmpty")} ); return ( {summary.totals.map((total) => ( {formatMoney(total)} ))} {summary.remainingCurrencyCount ? ( {t("accounts.remainingCurrencies", { count: summary.remainingCurrencyCount, })} ) : null} ); }; const BrokerageAccountList: FC = (props) => { const { accounts } = props; const { t } = useTranslation(); return ( {accounts.map(({ account, summary }) => ( {t(accountTypeKey(account.type))} {account.name} {account.openedOn ? ( {t("accounts.openedOn", { date: new Intl.DateTimeFormat("ru-RU", { dateStyle: "long", timeZone: "UTC", }).format(new Date(`${account.openedOn}T00:00:00Z`)), })} ) : null} {t("accounts.openAccount")} ))} ); }; export { BrokerageAccountList };