import type { FC } from "react"; import { Accordion, Alert, Badge, Group, Paper, Stack, Text, } from "@mantine/core"; import { useTranslation } from "react-i18next"; import { InstrumentSection as StockSection } from "@/features/instrument-details"; import { formatDate, formatMoney, formatSnapshotTime } from "@/shared/lib"; import type { StockPageVm } from "../StockPage.vm"; import classes from "../StockPage.module.css"; type StockEventsProps = { vm: StockPageVm }; const StockDividends: FC = (props) => { const { vm } = props; const { t } = useTranslation(); return ( {!!(vm.dividends) && (( {!!(vm.dividends.estimateUnavailable || vm.dividends.positionIsStale) && (( {t("stock.estimateUnavailable")} ))} {vm.upcoming.length > 0 ? ( vm.upcoming.map(event => (
{t("stock.companyEvent")} {formatMoney(event.perShare)} {" "} {t("stock.perShare")}
{!!(event.estimatedAmount) && ((
{t("stock.yourEstimate")} {formatMoney(event.estimatedAmount)}
))}
{!!(event.lastBuyDate) && ((
{t("stock.lastBuy")} {formatDate(event.lastBuyDate)}
))} {!!(event.recordDate) && ((
{t("stock.record")} {formatDate(event.recordDate)}
))} {!!(event.paymentDate) && ((
{t("stock.payment")} {formatDate(event.paymentDate)}
))}
)) ) : ( {t("stock.noUpcoming", { to: formatDate(vm.dividends.to) })} )} {t("stock.dividendNote")} {!!(vm.dividends.positionAt) && (( {t("stock.snapshotAt", { date: formatSnapshotTime(vm.dividends.positionAt), })} ))} {t("stock.dividendHistory")} {t("stock.dividendWindow", { from: formatDate(vm.dividends.from), to: formatDate(vm.dividends.to), })} {vm.pastDividends.length > 0 ? ( {vm.pastDividends.map(event => (
{t("stock.record")} {event.recordDate ? formatDate(event.recordDate) : t("stock.dateUnknown")} {!!(event.paymentDate) && (( {t("stock.payment")} : {" "} {formatDate(event.paymentDate)} ))}
{formatMoney(event.perShare)} {t("stock.perShare")}
))}
) : ( {t("stock.noDividends")} )}
))}
); }; export { StockDividends };