From 2190368b52fe9f2b47987255f5c0d60c4764cd06 Mon Sep 17 00:00:00 2001 From: headphonejames Date: Sat, 25 Mar 2023 10:49:07 -0700 Subject: [PATCH] remove react effect for less potential re-rendering Signed-off-by: headphonejames --- .../EntityAutocompletePicker.tsx | 11 ++++++----- .../EntityTagPicker/EntityTagPicker.test.tsx | 1 - 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx index 20294fa7f1..00114a29fc 100644 --- a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx +++ b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx @@ -95,11 +95,12 @@ export function EntityAutocompletePicker< // Set selected options on query parameter updates; this happens at initial page load and from // external updates to the page location - useEffect(() => { - if (queryParameters.length) { - setSelectedOptions(queryParameters); - } - }, [queryParameters]); + const [prevQueryParameters, setQueryParameter] = useState(queryParameters); + // if the query parameter has changed, update the selected options + if (queryParameters !== prevQueryParameters) { + setSelectedOptions(queryParameters); + setQueryParameter(queryParameters); + } const availableOptions = Object.keys(availableValues ?? {}); const shouldAddFilter = selectedOptions.length && availableOptions.length; diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx index 5ee8c481e2..bfaa689190 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.test.tsx @@ -222,7 +222,6 @@ describe('', () => { tags: new EntityTagFilter(['tag1']), }), ); - fireEvent.click(screen.getByTestId('tags-picker-expand')); fireEvent.click(screen.getByLabelText('tag2')); expect(screen.getByLabelText('tag2')).toBeChecked();