Merge pull request #6599 from kuangp/fix/entityListProvider
fix(EntityListProvider): don't update url if unmounted
This commit is contained in:
@@ -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 },
|
||||
|
||||
Reference in New Issue
Block a user