From 7bbba83835a9a873c9ca588661d0bc5f123b1270 Mon Sep 17 00:00:00 2001 From: Pramod S Date: Thu, 22 Aug 2024 16:01:28 +0200 Subject: [PATCH] updated lodash unique to filter with safe type guard --- .../src/components/CacheProvider/AnnotationModelUtils.ts | 5 ++++- .../hooks/useExtractUniqueAssetIdsFromMapped.tsx | 2 +- .../src/query/useSearchAssetsMapped360Annotations.tsx | 5 ++++- .../src/query/useSearchMappedEquipmentAssetMappings.tsx | 7 +++++-- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/react-components/src/components/CacheProvider/AnnotationModelUtils.ts b/react-components/src/components/CacheProvider/AnnotationModelUtils.ts index e6c164b3461..cb92a0e63dc 100644 --- a/react-components/src/components/CacheProvider/AnnotationModelUtils.ts +++ b/react-components/src/components/CacheProvider/AnnotationModelUtils.ts @@ -23,7 +23,10 @@ export async function fetchPointCloudAnnotationAssets( }); const filteredAnnotationMapping = annotationMapping.filter(isDefined); - const uniqueAnnotationMapping = uniqBy(filteredAnnotationMapping, 'assetId'); + const uniqueAnnotationMapping = uniqBy( + filteredAnnotationMapping, + (annotationMapping) => annotationMapping.assetId + ); const assetIds = uniqueAnnotationMapping.map((mapping) => mapping.assetId); const assets = await fetchAssetForAssetIds(assetIds, sdk); diff --git a/react-components/src/components/RuleBasedOutputs/hooks/useExtractUniqueAssetIdsFromMapped.tsx b/react-components/src/components/RuleBasedOutputs/hooks/useExtractUniqueAssetIdsFromMapped.tsx index 60c65908077..e9f9f6ed1f3 100644 --- a/react-components/src/components/RuleBasedOutputs/hooks/useExtractUniqueAssetIdsFromMapped.tsx +++ b/react-components/src/components/RuleBasedOutputs/hooks/useExtractUniqueAssetIdsFromMapped.tsx @@ -17,7 +17,7 @@ export const useExtractUniqueAssetIdsFromMapped = ( id: item.assetId }; }); - const uniqueAssetIds = uniqBy(assetIds, 'id'); + const uniqueAssetIds = uniqBy(assetIds, (assetId) => assetId.id); return uniqueAssetIds; }, [assetMappings]); }; diff --git a/react-components/src/query/useSearchAssetsMapped360Annotations.tsx b/react-components/src/query/useSearchAssetsMapped360Annotations.tsx index ffb308434f5..827ce111b4e 100644 --- a/react-components/src/query/useSearchAssetsMapped360Annotations.tsx +++ b/react-components/src/query/useSearchAssetsMapped360Annotations.tsx @@ -116,7 +116,10 @@ async function get360AnnotationAssets( }) .filter(isDefined); - const uniqueAnnotationMapping = uniqBy(filteredAnnotationMappings, 'assetId'); + const uniqueAnnotationMapping = uniqBy( + filteredAnnotationMappings, + (annotationMapping) => annotationMapping.assetId + ); const assets = await retrieveAssets(sdk, uniqueAnnotationMapping); const flatAssets = assets.flat(); diff --git a/react-components/src/query/useSearchMappedEquipmentAssetMappings.tsx b/react-components/src/query/useSearchMappedEquipmentAssetMappings.tsx index ca021bdf0dd..34244a5159a 100644 --- a/react-components/src/query/useSearchMappedEquipmentAssetMappings.tsx +++ b/react-components/src/query/useSearchMappedEquipmentAssetMappings.tsx @@ -17,7 +17,7 @@ import { useSDK } from '../components/RevealCanvas/SDKProvider'; import { getAssetsList } from '../hooks/network/getAssetsList'; import { useAssetMappedNodesForRevisions } from '../components/CacheProvider/AssetMappingAndNode3DCacheProvider'; import { isDefined } from '../utilities/isDefined'; -import { uniq } from 'lodash'; +import { uniqBy } from 'lodash'; export type ModelMappings = { model: AddModelOptions; @@ -81,7 +81,10 @@ export const useSearchMappedEquipmentAssetMappings = ( .filter(isDefined); }); - const uniqueAssets = uniq([...accumulatedAssets, ...filteredSearchedAssets]); + const uniqueAssets = uniqBy( + [...accumulatedAssets, ...filteredSearchedAssets], + (asset) => asset.id + ); if (uniqueAssets.length >= limit || assetsResponse.nextCursor === undefined) { return { assets: uniqueAssets, nextCursor: assetsResponse.nextCursor };