feat(catalog/swr): simplify the code significantly. now we are talking. this library is the nutz

This commit is contained in:
blam
2020-06-12 00:34:11 +02:00
parent 1a581d4d26
commit 5ae13652fe
@@ -61,21 +61,15 @@ const useStyles = makeStyles(theme => ({
export const CatalogPage: FC<{}> = () => {
const catalogApi = useApi(catalogApiRef);
const {
starredEntities,
toggleStarredEntity,
isStarredEntity,
} = useStarredEntities();
const { toggleStarredEntity, isStarredEntity } = useStarredEntities();
const [selectedFilter, setSelectedFilter] = useState<CatalogFilterItem>(
defaultFilter,
);
const { data: entities, error, revalidate } = useStaleWhileRevalidate(
['catalog', entityFilters[selectedFilter.id]],
async (_, filter) => {
return await catalogApi.getEntities();
},
{ compare: () => false },
const { data: entities, error } = useStaleWhileRevalidate(
['catalog/all', entityFilters[selectedFilter.id]],
async () => catalogApi.getEntities(),
);
const data =
@@ -83,12 +77,6 @@ export const CatalogPage: FC<{}> = () => {
entityFilters[selectedFilter.id](e, { isStarred: isStarredEntity(e) }),
) ?? [];
const revalidator = starredEntities.size || {};
useEffect(() => {
revalidate();
}, [revalidate, revalidator]);
const onFilterSelected = useCallback(
selected => setSelectedFilter(selected),
[],