From b2433302a80dda606290762b9075232b1c5a6f5f Mon Sep 17 00:00:00 2001 From: Amit Yathirajadasan Date: Tue, 4 Nov 2025 13:06:51 -0800 Subject: [PATCH] fix: managing paging in useFetchEntities --- .../hooks/useFetchEntities.js | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/nerdlets/groundskeeper-v2/hooks/useFetchEntities.js b/nerdlets/groundskeeper-v2/hooks/useFetchEntities.js index 3d8c240..477f917 100644 --- a/nerdlets/groundskeeper-v2/hooks/useFetchEntities.js +++ b/nerdlets/groundskeeper-v2/hooks/useFetchEntities.js @@ -14,27 +14,35 @@ const entityFragmentExtension = ngql` `; const useFetchEntities = () => { + const [entities, setEntities] = useState([]); const [agentReleases, setAgentReleases] = useState({}); const [latestReleases, setLatestReleases] = useState({}); const { data: releaseData, error: releaseError } = useNerdGraphQuery({ query: AGENT_RELEASES }); const { - data: { count, entities } = {}, + data: { count, entities: listingEntities } = {}, error: listingError, - loading: listingLoading, + loading, fetchMore: listingFetchMore } = useEntitiesByDomainTypeQuery({ entityDomain: 'APM', entityType: 'APPLICATION', includeTags: true, + limit: 200, entityFragmentExtension }); useEffect(() => { - if (entities.length < count && !listingLoading && listingFetchMore) - listingFetchMore(); - }, [entities, count, listingLoading, listingFetchMore]); + if (listingEntities.length) { + const sanitizedEntities = sanitize(listingEntities); + setEntities(ents => [...ents, ...sanitizedEntities]); + } + }, [listingEntities]); + + useEffect(() => { + if (listingFetchMore) listingFetchMore(); + }, [listingFetchMore]); useEffect(() => { /* eslint-disable no-console */ @@ -64,17 +72,10 @@ const useFetchEntities = () => { setLatestReleases(latest); }, [releaseData]); - // useEffect(() => { - // console.log('entities', entities) - // }, [entities]); - - // useEffect(() => { - // console.log('releases', agentReleases, latestReleases) - // }, [agentReleases, latestReleases]); - return { count, - entities: sanitize(entities), + entities, + loading, agentReleases, latestReleases };