Files
frontend/src/entities/brokerage-account/api/useBrokerageAccounts.ts
T
ksv741 432cca299f
Frontend verify / commits (pull_request) Successful in 40s
Frontend verify / security (pull_request) Successful in 9s
Frontend verify / verify (pull_request) Successful in 6m43s
feat: align investment client with hourly sync
2026-10-09 09:04:45 +03:00

33 lines
973 B
TypeScript

import { apiQueryClient, type paths, useResourceQuery } from "@/shared/api";
const brokerageAccountsQueryOptions = () =>
apiQueryClient.queryOptions("get", "/api/v1/brokerage-accounts");
const brokerageAccountsQueryKey = brokerageAccountsQueryOptions().queryKey;
const BROKERAGE_ACCOUNTS_STALE_TIME_MS = 1_800_000;
type BrokerageAccount = NonNullable<
paths["/api/v1/brokerage-accounts"]["get"]["responses"][200]["content"]["application/json"]["data"]
>[number];
type BrokerageAccountsResponse = paths["/api/v1/brokerage-accounts"]["get"]["responses"][200]["content"]["application/json"];
function useBrokerageAccounts() {
const query = useResourceQuery({
meta: { accessGroup: "brokerage" },
...brokerageAccountsQueryOptions(),
staleTime: BROKERAGE_ACCOUNTS_STALE_TIME_MS,
});
return {
...query,
sync: query.sync as BrokerageAccountsResponse["sync"] | null,
};
}
export {
type BrokerageAccount,
brokerageAccountsQueryKey,
useBrokerageAccounts,
};