import { useEffect, useMemo, useRef } from 'react'; import { useFetcher } from 'react-router'; import { HostInfo } from '~/types'; export default function useAgent(nodeIds: string[]) { const fetcher = useFetcher>(); const qp = useMemo( () => new URLSearchParams({ node_ids: nodeIds.join(',') }), [nodeIds], ); const idRef = useRef([]); useEffect(() => { if (idRef.current.join(',') !== nodeIds.join(',')) { fetcher.load(`/api/agent?${qp.toString()}`); idRef.current = nodeIds; } }, [qp.toString()]); return { data: fetcher.data, isLoading: fetcher.state === 'loading', }; }