From 35d6b99f0d626ca337e60bff5e95dfea10a33f2d Mon Sep 17 00:00:00 2001 From: andrewwallacespeckle Date: Thu, 7 Aug 2025 20:14:05 +0100 Subject: [PATCH] fix(fe): replace nested loops in filter components --- .../components/viewer/compare-changes/ObjectGroup.vue | 3 ++- .../components/viewer/explorer/StringFilterItem.vue | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/frontend-2/components/viewer/compare-changes/ObjectGroup.vue b/packages/frontend-2/components/viewer/compare-changes/ObjectGroup.vue index 3ac25076a..152606314 100644 --- a/packages/frontend-2/components/viewer/compare-changes/ObjectGroup.vue +++ b/packages/frontend-2/components/viewer/compare-changes/ObjectGroup.vue @@ -46,7 +46,8 @@ const color = computed(() => { const isSelected = computed(() => { const selObjsIds = selectedObjects.value.map((o) => o.id as string) - return selObjsIds.some((id: string) => props.objectIds.includes(id)) + const objectIdsSet = new Set(props.objectIds) + return selObjsIds.some((id: string) => objectIdsSet.has(id)) }) const objectCount = computed(() => { diff --git a/packages/frontend-2/components/viewer/explorer/StringFilterItem.vue b/packages/frontend-2/components/viewer/explorer/StringFilterItem.vue index ed403e827..2b9053b35 100644 --- a/packages/frontend-2/components/viewer/explorer/StringFilterItem.vue +++ b/packages/frontend-2/components/viewer/explorer/StringFilterItem.vue @@ -101,8 +101,10 @@ const isSelected = computed(() => hasIntersection(objectIds.value, props.item.id const availableTargetIds = computed(() => { let targets = props.item.ids - if (isolatedObjectIds.value.length) - targets = props.item.ids.filter((id) => isolatedObjectIds.value.includes(id)) + if (isolatedObjectIds.value.length) { + const isolatedSet = new Set(isolatedObjectIds.value) + targets = props.item.ids.filter((id) => isolatedSet.has(id)) + } return targets }) @@ -121,7 +123,8 @@ const isHidden = computed(() => { const isIsolated = computed(() => { if (!isolatedObjectIds.value.length) return true const ids = props.item.ids - return isolatedObjectIds.value.some((id) => ids.includes(id)) + const isolatedSet = new Set(isolatedObjectIds.value) + return ids.some((id) => isolatedSet.has(id)) }) const color = computed(() => {