refactor: enforce frontend view model boundaries
Frontend verify / commits (pull_request) Successful in 28s
Frontend verify / security (pull_request) Successful in 10s
Frontend verify / verify (pull_request) Successful in 8m19s

This commit is contained in:
2026-09-28 18:48:23 +03:00
parent 5b69003516
commit ca0ad4f824
287 changed files with 8558 additions and 4538 deletions
@@ -7,7 +7,8 @@ const VISIBLE_CURRENCY_LIMIT = 2;
type BrokerageAccountCard = {
account: BrokerageAccount;
positionCounts: null | { bonds: number; stocks: number };
positionCounts: null
| { bonds: number; stocks: number };
source?: NonNullable<
ReturnType<typeof useBrokerageAccounts>["meta"]
>["dependencies"] extends (infer T)[] | undefined
@@ -38,20 +39,26 @@ function brokerageAccountCards(
item =>
item.resourceKey === `portfolio/${encodeURIComponent(account.id)}`,
);
const summary = account.portfolioSummary;
if (!summary)
return {
account,
positionCounts: /* eslint-disable-line unicorn/no-null -- The existing formatter contract uses null for unavailable data. */ null,
positionCounts:
// eslint-disable-next-line unicorn/no-null -- The existing formatter contract uses null for unavailable data.
null,
source,
summary: { state: "unavailable" },
};
const positionCounts = {
bonds: summary.bondPositionCount,
stocks: summary.stockPositionCount,
};
if (summary.totalsByCurrency.length === 0)
return { account, positionCounts, source, summary: { state: "empty" } };
return {
account,
positionCounts,