moex-vibe/apps/frontend/src/entities/broker-account/model/useBrokerAccountPortfolios.ts

18 lines
664 B
TypeScript

import { useQueries } from '@tanstack/react-query';
import type { BrokerAccount, BrokerPortfolio } from '@/shared/api/responses';
import { getBrokerPortfolio } from '../api/brokerAccountApi';
export function useBrokerAccountPortfolios(accounts: BrokerAccount[]) {
const queries = useQueries({
queries: accounts.map((account) => ({
queryKey: ['broker', 'portfolio', account.id],
queryFn: async (): Promise<BrokerPortfolio> => (await getBrokerPortfolio(account.id)).data,
staleTime: 60_000,
retry: 2,
refetchOnWindowFocus: false,
})),
});
return accounts.map((account, index) => ({ account, query: queries[index] }));
}