import type { FC } from "react"; import { Accordion, Alert, Stack } from "@mantine/core"; import { useTranslation } from "react-i18next"; import type { BrokerageAccount } from "@/entities/brokerage-account"; import type { Portfolio } from "@/entities/portfolio"; import type { InvestmentResourceMeta } from "@/shared/api"; import { BrokerageEventsPreview } from "@/entities/brokerage-event"; import { SourceSyncStatus } from "@/shared/ui"; import { PortfolioStructure } from "@/widgets/portfolio-structure"; import type { AccountPagePositionSection } from "../../../model/positions"; import type { AccountPageIncomeSummary, AccountPageRecentEvents, AccountPageRecentOperations, } from "../../../model/previews"; import classes from "../AccountPage.module.css"; import { AccountHeading } from "./AccountHeading.view"; import { CurrencyCards } from "./CurrencyCards/CurrencyCards.view"; import { IncomeSummary } from "./IncomeSummary.view"; import { PositionSection } from "./PositionSection.view"; import { RecentOperations } from "./RecentOperations.view"; type AccountPageLoadedProps = { account?: BrokerageAccount; accountId?: string; incomeSummary?: AccountPageIncomeSummary; partial?: boolean; portfolio: Portfolio; positionSections: AccountPagePositionSection[]; recentEvents: AccountPageRecentEvents; recentOperations: AccountPageRecentOperations; source?: InvestmentResourceMeta; }; const AccountPageLoaded: FC = (props) => { const { t } = useTranslation(); const defaultValue = [ ...props.positionSections.map(section => section.kind), "cash", "recentOperations", "recentEvents", "incomeSummary", ]; return ( {props.partial ? {t("investment.partial")} : } {!props.partial && ( )} {props.positionSections.map(section => ( {t(positionSectionTitleKey(section.kind))} ))} {t("portfolio.cashBalances")} {t("ledger.recentTitle")} {t("events.recentTitle")} {t("income.summaryTitle")} {!!props.incomeSummary && ( )} ); }; function positionSectionTitleKey(kind: AccountPagePositionSection["kind"]) { if (kind === "stocks") return "portfolio.stocks"; return kind === "bonds" ? "portfolio.bonds" : "portfolio.otherPositions"; } export { AccountPageLoaded };