Files
frontend/src/entities/brokerage-event/ui/BrokerageEventCard.tsx
T
ksv741 a4046dbe87
Frontend verify / commits (pull_request) Successful in 29s
Frontend verify / security (pull_request) Successful in 9s
Frontend verify / verify (pull_request) Successful in 8m54s
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 12s
Frontend verify / verify (push) Successful in 9m59s
refactor: address frontend review feedback
2026-09-28 19:20:32 +03:00

49 lines
1.2 KiB
TypeScript

import type { FC } from "react";
import { EntryCard } from "@wealthledger/ui";
import { useTranslation } from "react-i18next";
import { formatDate, formatMoney, instrumentLogoUrl } from "@/shared/lib";
import type { BrokerageEvent } from "../api/useBrokerageEvents";
type BrokerageEventCardProps = { event: BrokerageEvent };
const BrokerageEventCard: FC<BrokerageEventCardProps> = (props) => {
const { event } = props;
const { t } = useTranslation();
const date = formatDate(event.date);
const metadata = [
date,
event.dateKind === "registry"
? t("events.dateKind.registry")
: null,
event.isin,
event.account?.name,
]
.filter(Boolean)
.join(" · ");
const projectedAmount = event.projectedAmount
? formatMoney(event.projectedAmount)
: t("events.noAmount");
return (
<EntryCard
imageSrc={instrumentLogoUrl(event.logoName)}
initial={(
(event.ticker ?? event.displayName).trim()[0] ?? "?"
).toUpperCase()}
metadata={metadata}
title={[t(`events.type.${event.type}`), event.displayName].join(" · ")}
tone="neutral"
value={projectedAmount}
valueLabel={t("events.projectedAmount")}
/>
);
};
export { BrokerageEventCard };