From cb7f12e314003b5c7138b0d1b135cfaf28086173 Mon Sep 17 00:00:00 2001 From: Peter Makowski Date: Wed, 29 May 2024 15:07:48 +0200 Subject: [PATCH] fix: DHCPTable, TagForm, VLANDetails selectors - In VLANDetails.tsx, update the call to subnetSelectors.getByIds to pass null instead of an empty array when vlan?.subnet_ids is falsy. - In TagForm.tsx, prevent the events array from being re-created on every render Signed-off-by: Peter Makowski --- src/app/base/components/DHCPTable/DHCPTable.tsx | 6 ++---- .../MachineDetails/MachineConfiguration/TagForm/TagForm.tsx | 6 ++---- src/app/subnets/views/VLANDetails/VLANDetails.tsx | 2 +- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/app/base/components/DHCPTable/DHCPTable.tsx b/src/app/base/components/DHCPTable/DHCPTable.tsx index edd41b4494..1212d7b474 100644 --- a/src/app/base/components/DHCPTable/DHCPTable.tsx +++ b/src/app/base/components/DHCPTable/DHCPTable.tsx @@ -140,13 +140,11 @@ const DHCPTable = ({ }: Props): JSX.Element | null => { const [expanded, setExpanded] = useState(null); const dhcpsnippetLoading = useSelector(dhcpsnippetSelectors.loading); + const subnetIds = subnets?.map(({ id }) => id) || null; const dhcpsnippets = useSelector((state: RootState) => node ? dhcpsnippetSelectors.getByNode(state, node?.system_id) - : dhcpsnippetSelectors.getBySubnets( - state, - subnets?.map(({ id }) => id) - ) + : dhcpsnippetSelectors.getBySubnets(state, subnetIds) ); useFetchActions([dhcpsnippetActions.fetch]); diff --git a/src/app/machines/views/MachineDetails/MachineConfiguration/TagForm/TagForm.tsx b/src/app/machines/views/MachineDetails/MachineConfiguration/TagForm/TagForm.tsx index c705a000d8..6c932974af 100644 --- a/src/app/machines/views/MachineDetails/MachineConfiguration/TagForm/TagForm.tsx +++ b/src/app/machines/views/MachineDetails/MachineConfiguration/TagForm/TagForm.tsx @@ -25,11 +25,9 @@ const TagForm = ({ systemId }: Props): JSX.Element | null => { ); const tagsLoading = useSelector(tagSelectors.loading); const taggingMachines = useSelector(machineSelectors.updatingTags); + const eventActions = [NodeActions.TAG, NodeActions.UNTAG]; const errors = useSelector((state: RootState) => - machineSelectors.eventErrorsForIds(state, systemId, [ - NodeActions.TAG, - NodeActions.UNTAG, - ]) + machineSelectors.eventErrorsForIds(state, systemId, eventActions) )[0]?.error; const canEdit = useCanEdit(machine, true); diff --git a/src/app/subnets/views/VLANDetails/VLANDetails.tsx b/src/app/subnets/views/VLANDetails/VLANDetails.tsx index 9edb0fcf0c..77ad8c033c 100644 --- a/src/app/subnets/views/VLANDetails/VLANDetails.tsx +++ b/src/app/subnets/views/VLANDetails/VLANDetails.tsx @@ -37,7 +37,7 @@ const VLANDetails = (): JSX.Element => { ); const vlansLoading = useSelector(vlanSelectors.loading); const subnets = useSelector((state: RootState) => - subnetSelectors.getByIds(state, vlan?.subnet_ids || []) + subnetSelectors.getByIds(state, vlan?.subnet_ids || null) ); useWindowTitle(`${vlan?.name || "VLAN"} details`);