Merge pull request #6599 from kuangp/fix/entityListProvider

fix(EntityListProvider): don't update url if unmounted
This commit is contained in:
Tim Hansen
2021-07-23 15:15:35 -06:00
committed by GitHub
2 changed files with 15 additions and 7 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
Fix `EntityListProvider` to not update url if unmounted
@@ -25,7 +25,7 @@ import React, {
useState,
} from 'react';
import { useSearchParams } from 'react-router-dom';
import { useAsyncFn, useDebounce } from 'react-use';
import { useAsyncFn, useDebounce, useMountedState } from 'react-use';
import { catalogApiRef } from '../api';
import {
EntityKindFilter,
@@ -102,6 +102,7 @@ type OutputState<EntityFilters extends DefaultEntityFilters> = {
export const EntityListProvider = <EntityFilters extends DefaultEntityFilters>({
children,
}: PropsWithChildren<{}>) => {
const isMounted = useMountedState();
const catalogApi = useApi(catalogApiRef);
const [searchParams, setSearchParams] = useSearchParams();
const allQueryParams = qs.parse(searchParams.toString());
@@ -164,12 +165,14 @@ export const EntityListProvider = <EntityFilters extends DefaultEntityFilters>({
});
}
setSearchParams(
qs.stringify({ ...allQueryParams, filters: queryParams }),
{
replace: true,
},
);
if (isMounted()) {
setSearchParams(
qs.stringify({ ...allQueryParams, filters: queryParams }),
{
replace: true,
},
);
}
},
[catalogApi, requestedFilters, outputState],
{ loading: true },