From 6156fb87303d4a3f5f03e474d8de3ce214dc2bc8 Mon Sep 17 00:00:00 2001 From: Tim Hansen Date: Fri, 10 Dec 2021 14:38:32 -0700 Subject: [PATCH] Skip updating selected types if they didn't change Signed-off-by: Tim Hansen --- .changeset/thirty-ways-attend.md | 5 +++++ plugins/catalog-react/src/hooks/useEntityTypeFilter.tsx | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/thirty-ways-attend.md diff --git a/.changeset/thirty-ways-attend.md b/.changeset/thirty-ways-attend.md new file mode 100644 index 0000000000..b294b4bfb0 --- /dev/null +++ b/.changeset/thirty-ways-attend.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-react': patch +--- + +`useEntityTypeFilter`: Skip updating selected types if a kind filter change did not change them. diff --git a/plugins/catalog-react/src/hooks/useEntityTypeFilter.tsx b/plugins/catalog-react/src/hooks/useEntityTypeFilter.tsx index 5a8ed6775a..bf5777becc 100644 --- a/plugins/catalog-react/src/hooks/useEntityTypeFilter.tsx +++ b/plugins/catalog-react/src/hooks/useEntityTypeFilter.tsx @@ -16,6 +16,7 @@ import { useEffect, useMemo, useRef, useState } from 'react'; import { useAsync } from 'react-use'; +import isEqual from 'lodash/isEqual'; import { useApi } from '@backstage/core-plugin-api'; import { catalogApiRef } from '../api'; import { useEntityListProvider } from './useEntityListProvider'; @@ -107,7 +108,9 @@ export function useEntityTypeFilter(): EntityTypeReturn { const stillValidTypes = selectedTypes.filter(value => newTypes.includes(value), ); - setSelectedTypes(stillValidTypes); + if (!isEqual(selectedTypes, stillValidTypes)) { + setSelectedTypes(stillValidTypes); + } }, [loading, kind, selectedTypes, setSelectedTypes, entities]); useEffect(() => {