diff --git a/react-components/src/components/NodeCacheProvider/FdmNodeCache.ts b/react-components/src/components/NodeCacheProvider/FdmNodeCache.ts index 328e4e174a7..cb9be4a1e1c 100644 --- a/react-components/src/components/NodeCacheProvider/FdmNodeCache.ts +++ b/react-components/src/components/NodeCacheProvider/FdmNodeCache.ts @@ -11,14 +11,14 @@ import { SYSTEM_3D_EDGE_SOURCE, SYSTEM_SPACE_3D_SCHEMA } from '../../utilities/globalDataModels'; -import { - type ModelRevisionKey, - type ModelRevisionToEdgeMap -} from '../../hooks/useMappedEquipmentBy3DModelsList'; + +export type ModelRevisionKey = `${number}-${number}`; +export type ModelRevisionToEdgeMap = Map; import { partition } from 'lodash'; import assert from 'assert'; +import { fetchNodesForNodeIds } from './requests'; export class FdmNodeCache { private readonly _revisionNodeCaches = new Map(); @@ -235,7 +235,7 @@ async function createModelNodeIdToNodeMap(revisionToNodeIdsMap: Map p.revisionId === revisionId)?.modelId; assert(modelId !== undefined); - const nodes = await nodeIdsToNodes(modelId, revisionId, nodeIds, cdfClient); + const nodes = await fetchNodesForNodeIds(modelId, revisionId, nodeIds, cdfClient); nodeIds.forEach((e, ind) => { const modelNodeIdKey = `${modelId}-${revisionId}-${e}` as const; revisionNodeIdToNode.set(modelNodeIdKey, nodes[ind]); @@ -262,16 +262,3 @@ function createRevisionToNodeIdMap(edges: Array): Map()); } - -async function nodeIdsToNodes( - modelId: number, - revisionId: number, - nodeIds: number[], - cogniteClient: CogniteClient -): Promise { - return await cogniteClient.revisions3D.retrieve3DNodes( - modelId, - revisionId, - nodeIds.map((id) => ({ id })) - ); -} diff --git a/react-components/src/components/NodeCacheProvider/NodeCacheProvider.tsx b/react-components/src/components/NodeCacheProvider/NodeCacheProvider.tsx index 42845dc998e..35fe34ab589 100644 --- a/react-components/src/components/NodeCacheProvider/NodeCacheProvider.tsx +++ b/react-components/src/components/NodeCacheProvider/NodeCacheProvider.tsx @@ -3,8 +3,7 @@ */ import { type ReactElement, type ReactNode, createContext, useContext, useMemo } from 'react'; -import { FdmNodeCache } from './FdmNodeCache'; -import { type ModelRevisionToEdgeMap } from '../../hooks/useMappedEquipmentBy3DModelsList'; +import { FdmNodeCache, ModelRevisionToEdgeMap } from './FdmNodeCache'; import { type UseQueryResult, useQuery } from '@tanstack/react-query'; import { useFdmSdk, useSDK } from '../RevealContainer/SDKProvider'; import { type Fdm3dNodeData } from './types'; @@ -17,7 +16,7 @@ export type FdmNodeCacheContent = { export const FdmNodeCacheContext = createContext(undefined); -export const useGetAllExternalIds = ( +export const useMappedEdgesForRevisions = ( modelRevisionIds: Array<{ modelId: number; revisionId: number }>, enabled: boolean ): UseQueryResult => { diff --git a/react-components/src/components/NodeCacheProvider/RevisionFdmNodeCache.ts b/react-components/src/components/NodeCacheProvider/RevisionFdmNodeCache.ts index ae4f68fdc7c..22086537050 100644 --- a/react-components/src/components/NodeCacheProvider/RevisionFdmNodeCache.ts +++ b/react-components/src/components/NodeCacheProvider/RevisionFdmNodeCache.ts @@ -4,7 +4,7 @@ import { type CogniteClient, type Node3D } from '@cognite/sdk'; import { type FdmSDK } from '../../utilities/FdmSDK'; -import { type TreeIndex } from './FdmNodeCache'; +import { type TreeIndex } from './types'; import { fetchAncestorNodesForTreeIndex, diff --git a/react-components/src/components/NodeCacheProvider/requests.ts b/react-components/src/components/NodeCacheProvider/requests.ts index a1f59a1354b..42829f77a3a 100644 --- a/react-components/src/components/NodeCacheProvider/requests.ts +++ b/react-components/src/components/NodeCacheProvider/requests.ts @@ -113,3 +113,16 @@ export async function treeIndexesToNodeIds( throw Error(`treeIndex-nodeId translation failed for treeIndexes ${treeIndexes.join(',')}`); } } + +export async function fetchNodesForNodeIds( + modelId: number, + revisionId: number, + nodeIds: number[], + cogniteClient: CogniteClient +): Promise { + return await cogniteClient.revisions3D.retrieve3DNodes( + modelId, + revisionId, + nodeIds.map((id) => ({ id })) + ); +} diff --git a/react-components/src/hooks/useCalculateModelsStyling.tsx b/react-components/src/hooks/useCalculateModelsStyling.tsx index 73eea6a0a63..0e60723696d 100644 --- a/react-components/src/hooks/useCalculateModelsStyling.tsx +++ b/react-components/src/hooks/useCalculateModelsStyling.tsx @@ -10,7 +10,6 @@ import { type NodeStylingGroup, type CadModelStyling } from '../components/CadModelContainer/CadModelContainer'; -import { useMappedEquipmentByRevisionList } from './useMappedEquipmentBy3DModelsList'; import { type InModel3dEdgeProperties } from '../utilities/globalDataModels'; import { type EdgeItem } from '../utilities/FdmSDK'; import { type NodeAppearance } from '@cognite/reveal'; @@ -18,6 +17,7 @@ import { type ThreeDModelMappings } from './types'; import { type CogniteExternalId, type CogniteInternalId } from '@cognite/sdk'; import { useFdmAssetMappings } from './useFdmAssetMappings'; import { useEffect, useMemo } from 'react'; +import { useMappedEdgesForRevisions } from '../components/NodeCacheProvider/NodeCacheProvider'; type ModelStyleGroup = { model: TypedReveal3DModel; @@ -43,7 +43,7 @@ function useCalculateMappedStyling(models: TypedReveal3DModel[]): ModelStyleGrou (model) => model.styling?.mapped !== undefined ); const shouldFetchAllMappedEquipment = modelsRevisionsWithMappedEquipment.length > 0; - const { data: mappedEquipmentEdges } = useMappedEquipmentByRevisionList( + const { data: mappedEquipmentEdges } = useMappedEdgesForRevisions( modelsRevisionsWithMappedEquipment, shouldFetchAllMappedEquipment ); diff --git a/react-components/src/hooks/useMappedEquipmentBy3DModelsList.tsx b/react-components/src/hooks/useMappedEquipmentBy3DModelsList.tsx deleted file mode 100644 index f417505fe4b..00000000000 --- a/react-components/src/hooks/useMappedEquipmentBy3DModelsList.tsx +++ /dev/null @@ -1,16 +0,0 @@ -/*! - * Copyright 2023 Cognite AS - */ -import { type UseQueryResult } from '@tanstack/react-query'; -import { useGetAllExternalIds } from '../components/NodeCacheProvider/NodeCacheProvider'; -import { type FdmEdgeWithNode } from '../components/NodeCacheProvider/types'; - -export type ModelRevisionKey = `${number}-${number}`; -export type ModelRevisionToEdgeMap = Map; - -export const useMappedEquipmentByRevisionList = ( - modelRevisionIds: Array<{ modelId: number; revisionId: number }>, - enabled = true -): UseQueryResult => { - return useGetAllExternalIds(modelRevisionIds, enabled); -};