refactor: little structure refactor

This commit is contained in:
2026-08-14 10:24:24 +03:00
parent da585b157a
commit 2cca503519
18 changed files with 622 additions and 388 deletions
+27
View File
@@ -0,0 +1,27 @@
import { useQueryClient } from "@tanstack/react-query";
import { useParams } from "react-router";
import type { BrokerageAccount } from "@/entities/brokerage-account";
import { portfolioErrorCode, usePortfolio } from "@/entities/portfolio";
import { useAuth } from "@/features/auth";
const accountsQueryKey = ["brokerage-accounts"] as const;
export function useAccountPageViewModel() {
const { accountId } = useParams();
const { accessToken } = useAuth();
const portfolio = usePortfolio(accountId, accessToken);
const account = useQueryClient()
.getQueryData<BrokerageAccount[]>(accountsQueryKey)
?.find((item) => item.id === accountId);
if (portfolio.isError)
return {
state: "error" as const,
code: portfolioErrorCode(portfolio.error),
retry: () => portfolio.refetch(),
};
if (portfolio.isFetching || !portfolio.data)
return { state: "loading" as const };
if (!portfolio.data.positions.length && !portfolio.data.cashBalances.length)
return { state: "empty" as const, account };
return { state: "loaded" as const, account, portfolio: portfolio.data };
}