diff --git a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx index b9a57d1442..3d59ac5b9a 100644 --- a/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx +++ b/plugins/catalog/src/components/CatalogPage/CatalogPage.tsx @@ -40,11 +40,7 @@ import React, { FC, useCallback, useState } from 'react'; import { Link as RouterLink } from 'react-router-dom'; import { useAsync } from 'react-use'; import { catalogApiRef } from '../..'; -import { - defaultFilter, - filterGroups, - asyncEntityFilters, -} from '../../data/filters'; +import { defaultFilter, filterGroups, entityFilters } from '../../data/filters'; import { entityToComponent, findLocationForEntityMeta } from '../../data/utils'; import { useStarredEntities } from '../../hooks/useStarredEntites'; import { @@ -79,10 +75,13 @@ export const CatalogPage: FC<{}> = () => { const { value, error, loading } = useAsync( () => - asyncEntityFilters[selectedFilter.id]({ - entitiesResolver: () => catalogApi.getEntities(), - isStarredEntity, - }), + catalogApi + .getEntities() + .then(entities => + entities.filter( + entityFilters[selectedFilter.id]({ isStarredEntity }), + ), + ), [selectedFilter.id, starredEntities.size], ); diff --git a/plugins/catalog/src/data/filters.ts b/plugins/catalog/src/data/filters.ts index 13354ffc78..5f4c140986 100644 --- a/plugins/catalog/src/data/filters.ts +++ b/plugins/catalog/src/data/filters.ts @@ -55,24 +55,11 @@ export const filterGroups: CatalogFilterGroup[] = [ }, ]; -type ResolverFunction = ({ - entitiesResolver, - isStarredEntity, -}: { - entitiesResolver: () => Promise; - isStarredEntity: (entity: Entity) => boolean; -}) => Promise; - -export const asyncEntityFilters: Record = { - [FilterGroupItem.OWNED]: async () => [], - [FilterGroupItem.ALL]: async ({ entitiesResolver: asyncFn }) => { - return asyncFn(); - }, - [FilterGroupItem.STARRED]: async ({ entitiesResolver, isStarredEntity }) => { - const allEntities = await entitiesResolver(); - - return allEntities.filter(entity => isStarredEntity(entity)); - }, +export const entityFilters = { + [FilterGroupItem.OWNED]: () => () => false, + [FilterGroupItem.ALL]: () => () => true, + [FilterGroupItem.STARRED]: ({ isStarredEntity }: { isStarredEntity: any }) => + isStarredEntity, }; export const defaultFilter: CatalogFilterItem = filterGroups[0].items[0];