29 lines
793 B
TypeScript
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 };
|