diff --git a/src/components/SearchFacet/useGetFacetData.ts b/src/components/SearchFacet/useGetFacetData.ts index 81bda3c71..78168539f 100644 --- a/src/components/SearchFacet/useGetFacetData.ts +++ b/src/components/SearchFacet/useGetFacetData.ts @@ -59,6 +59,8 @@ export const useGetFacetData = (props: IUseGetFacetDataProps) => { setPagination(calculatePagination({ page: 0, numPerPage: FACET_DEFAULT_LIMIT })); }, [prefix, searchTerm, sortDir]); + const isQueryEnabled = enabled && isNonEmptyString(searchQuery?.q?.trim()); + // fetch the data const { data, ...result } = useGetSearchFacetJSON( { @@ -80,7 +82,7 @@ export const useGetFacetData = (props: IUseGetFacetDataProps) => { }), }, { - enabled: enabled && isNonEmptyString(searchQuery?.q?.trim()), + enabled: isQueryEnabled, keepPreviousData: true, }, ); @@ -96,12 +98,9 @@ export const useGetFacetData = (props: IUseGetFacetDataProps) => { [field, treeData], ); - const { - data: objects, - isLoading, - isFetching, - isError, - } = useObjects({ identifiers }, { enabled: identifiers?.length > 0 }); + const hasIdentifiers = isQueryEnabled && identifiers?.length > 0; + + const { data: objects, isLoading, isFetching, isError } = useObjects({ identifiers }, { enabled: hasIdentifiers }); const enhancedTreeData = useMemo(() => { if (objects && treeData) { @@ -168,9 +167,9 @@ export const useGetFacetData = (props: IUseGetFacetDataProps) => { handlePageChange, canLoadMore: res?.numBuckets !== treeData?.length, ...result, - isLoading: result.isLoading || isLoading, - isFetching: result.isFetching || isFetching, - isError: result.isError || isError, + isLoading: (isQueryEnabled && result.isLoading) || (hasIdentifiers && isLoading), + isFetching: result.isFetching || (hasIdentifiers && isFetching), + isError: result.isError || (hasIdentifiers && isError), }; };