import { useQuery } from 'react-query'; import { EnvironmentId } from '@/react/portainer/environments/types'; import axios, { parseAxiosError } from '@/portainer/services/axios'; export type DashboardResponse = { JobCount: number; GroupCount: number; TaskCount: number; RunningTaskCount: number; NodeCount: number; }; export function useDashboard(environmentId: EnvironmentId) { return useQuery( ['environments', environmentId, 'nomad', 'dashboard'], () => getDashboard(environmentId), { meta: { error: { title: 'Failure', message: 'Unable to get dashboard information', }, }, } ); } export async function getDashboard(environmentId: EnvironmentId) { try { const { data: dashboard } = await axios.get( `/nomad/endpoints/${environmentId}/dashboard`, { params: {}, } ); return dashboard; } catch (e) { throw parseAxiosError(e as Error); } }