import { useQuery } from '@tanstack/react-query'; import { withGlobalError } from '@/react-tools/react-query'; import axios, { parseAxiosError } from '@/portainer/services/axios'; import { EdgeStack } from '../types'; import { buildUrl } from './buildUrl'; import { queryKeys } from './query-keys'; type QueryParams = { summarizeStatuses?: boolean; }; export function useEdgeStacks({ params, refetchInterval, }: { params?: QueryParams; refetchInterval?: number | false | ((data?: T) => false | number); } = {}) { return useQuery({ queryKey: queryKeys.base(), queryFn: () => getEdgeStacks(params), refetchInterval, ...withGlobalError('Failed loading Edge stack'), }); } async function getEdgeStacks( params: QueryParams = {} ) { try { const { data } = await axios.get(buildUrl(), { params }); return data; } catch (e) { throw parseAxiosError(e as Error); } }