Files
frontend/src/entities/portfolio/api/usePortfolio.ts
T
ksv741 ca0ad4f824
Frontend verify / commits (pull_request) Successful in 28s
Frontend verify / security (pull_request) Successful in 10s
Frontend verify / verify (pull_request) Successful in 8m19s
refactor: enforce frontend view model boundaries
2026-09-28 18:48:23 +03:00

29 lines
793 B
TypeScript

import { apiQueryClient, type paths, useResourceQuery } from "@/shared/api";
const portfolioQueryPolicy = {
staleTime: 30_000,
} as const;
type Portfolio = NonNullable<
paths["/api/v1/brokerage-accounts/{accountId}/portfolio"]["get"]["responses"][200]["content"]["application/json"]["data"]
>;
function portfolioQueryOptions(accountId?: string) {
return apiQueryClient.queryOptions(
"get",
"/api/v1/brokerage-accounts/{accountId}/portfolio",
{ params: { path: { accountId: accountId ?? "" } } },
);
}
function usePortfolio(accountId?: string) {
return useResourceQuery({
meta: { accessGroup: "brokerage" },
...portfolioQueryOptions(accountId),
enabled: Boolean(accountId),
...portfolioQueryPolicy,
});
}
export { type Portfolio, portfolioQueryOptions, usePortfolio };