From 9475934c602a8bc4a11b2ca0e21fb313c3541e7a Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 16 Jun 2026 13:52:19 +0300 Subject: [PATCH 01/11] fix: add service layers to active layers widget --- src/common/i18n/en.json | 1 + src/common/i18n/he.json | 1 + .../selected-layers-container.tsx | 35 +++++++++++++------ .../views/discrete-layer-view.tsx | 1 + 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/common/i18n/en.json b/src/common/i18n/en.json index f31325064..201354828 100644 --- a/src/common/i18n/en.json +++ b/src/common/i18n/en.json @@ -756,6 +756,7 @@ "active-layers.title": "Active Layers", "active-layers.imagery": "Imagery", + "active-layers.service": "Service", "active-layers.data": "Data", "active-layers.remove": "Remove", diff --git a/src/common/i18n/he.json b/src/common/i18n/he.json index cf55a4a4d..d531cdc6e 100644 --- a/src/common/i18n/he.json +++ b/src/common/i18n/he.json @@ -756,6 +756,7 @@ "active-layers.title": "שכבות פעילות", "active-layers.imagery": "ראסטר", + "active-layers.service": "שירות", "active-layers.data": "מידע", "active-layers.remove": "הסר", diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index 1ce679da3..3132ff683 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -37,6 +37,13 @@ export const SelectedLayersContainer: React.FC = observer(() => { const cacheRef = useRef({} as CacheMap); const mapViewer = useCesiumMap(); + const getUrlWithoutQueryParams = (url?: string): string | undefined => { + if (!url) { + return undefined; + } + return url.split('?')[0]; + }; + useEffect(() => { if (store.discreteLayersStore.layersImages) { setlayersImages( @@ -69,11 +76,14 @@ export const SelectedLayersContainer: React.FC = observer(() => { const correctLinkByProtocol = (layer.links as LinkModelType[]).find( (link) => link.protocol === layerLink.protocol ); - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - return ( - correctLinkByProtocol?.url === - (cesiumLayer as any)._imageryProvider._resource._url + const linkUrl = getUrlWithoutQueryParams(correctLinkByProtocol?.url); + const cesiumLayerLinkUrl = getUrlWithoutQueryParams( + get(cesiumLayer, '_imageryProvider._resource._url') as string | undefined ); + if (!linkUrl || !cesiumLayerLinkUrl) { + return false; + } + return linkUrl === cesiumLayerLinkUrl; }) as SearchLayerPredicate, layerRecord: { ...layer, @@ -120,14 +130,17 @@ export const SelectedLayersContainer: React.FC = observer(() => { meta={{ id: layer.id, searchLayerPredicate: ((cesiumLayer, idx) => { - const linkUrl = (optionsWMTS.url as Record)._url as string; - const cesiumLayerLinkUrl = get( - cesiumLayer, - '_imageryProvider._resource._url' - ) as string; + const linkUrl = getUrlWithoutQueryParams( + get(optionsWMTS, 'url._url') as string | undefined + ); + const cesiumLayerLinkUrl = getUrlWithoutQueryParams( + get(cesiumLayer, '_imageryProvider._resource._url') as string | undefined + ); const isBaseLayer = get(cesiumLayer, 'meta.parentBasetMapId') as string; - const isLayerFound = - linkUrl.split('?')[0] === cesiumLayerLinkUrl.split('?')[0] && !isBaseLayer; + if (!linkUrl || !cesiumLayerLinkUrl) { + return false; + } + const isLayerFound = linkUrl === cesiumLayerLinkUrl && !isBaseLayer; return isLayerFound; }) as SearchLayerPredicate, layerRecord: { diff --git a/src/discrete-layer/views/discrete-layer-view.tsx b/src/discrete-layer/views/discrete-layer-view.tsx index f9f98d827..a7b48b06b 100644 --- a/src/discrete-layer/views/discrete-layer-view.tsx +++ b/src/discrete-layer/views/discrete-layer-view.tsx @@ -310,6 +310,7 @@ const DiscreteLayerView: React.FC = observer(() => { NO_DATA_LAYERS: intl.formatMessage({ id: 'debug-panel.empty' }), ACTIVE_LAYERS_TITLE: intl.formatMessage({ id: 'active-layers.title' }), IMAGERY: intl.formatMessage({ id: 'active-layers.imagery' }), + SERVICE: intl.formatMessage({ id: 'active-layers.service' }), DATA: intl.formatMessage({ id: 'active-layers.data' }), FLY_TO: intl.formatMessage({ id: 'action.flyTo.tooltip' }), REMOVE: intl.formatMessage({ id: 'active-layers.remove' }), From 09979010f52b7cd6bd2913cf8368dabb84ac9314 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Wed, 17 Jun 2026 15:34:08 +0300 Subject: [PATCH 02/11] feat: add 3d models to active layers panel --- src/common/i18n/en.json | 1 + src/common/i18n/he.json | 1 + src/discrete-layer/views/discrete-layer-view.tsx | 1 + 3 files changed, 3 insertions(+) diff --git a/src/common/i18n/en.json b/src/common/i18n/en.json index 201354828..33cd8a815 100644 --- a/src/common/i18n/en.json +++ b/src/common/i18n/en.json @@ -758,6 +758,7 @@ "active-layers.imagery": "Imagery", "active-layers.service": "Service", "active-layers.data": "Data", + "active-layers.3d": "3D", "active-layers.remove": "Remove", "geocoder-panel.show-feature-on-map": "Show on map", diff --git a/src/common/i18n/he.json b/src/common/i18n/he.json index d531cdc6e..6ba5b8333 100644 --- a/src/common/i18n/he.json +++ b/src/common/i18n/he.json @@ -758,6 +758,7 @@ "active-layers.imagery": "ראסטר", "active-layers.service": "שירות", "active-layers.data": "מידע", + "active-layers.3d": "תלת-מימד", "active-layers.remove": "הסר", "geocoder-panel.show-feature-on-map": "הראה על המפה", diff --git a/src/discrete-layer/views/discrete-layer-view.tsx b/src/discrete-layer/views/discrete-layer-view.tsx index a7b48b06b..1a02f2d71 100644 --- a/src/discrete-layer/views/discrete-layer-view.tsx +++ b/src/discrete-layer/views/discrete-layer-view.tsx @@ -312,6 +312,7 @@ const DiscreteLayerView: React.FC = observer(() => { IMAGERY: intl.formatMessage({ id: 'active-layers.imagery' }), SERVICE: intl.formatMessage({ id: 'active-layers.service' }), DATA: intl.formatMessage({ id: 'active-layers.data' }), + '3D': intl.formatMessage({ id: 'active-layers.3d' }), FLY_TO: intl.formatMessage({ id: 'action.flyTo.tooltip' }), REMOVE: intl.formatMessage({ id: 'active-layers.remove' }), BASE_MAP_TITLE: intl.formatMessage({ id: 'map-settings.base-map.title' }), From a635a478ef544ecdc49ab70e4b2680ed55a8aeff Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 18 Jun 2026 09:10:48 +0300 Subject: [PATCH 03/11] fix: 3d model primitive name --- .../components/map-container/selected-layers-container.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index 3132ff683..95563ee77 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -110,6 +110,10 @@ export const SelectedLayersContainer: React.FC = observer(() => { layerLink.url as string, (layer as Layer3DRecordModelType).productVersion as string )} + onReady={(tileset) => { + const primitive = tileset as unknown as Record; + primitive.properties = { name: layer.productName }; + }} /> ); case LinkType.WMTS_LAYER: From 231f7efe6345886049ff7bdd17afdf32b78ca1ae Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Sun, 21 Jun 2026 18:04:12 +0300 Subject: [PATCH 04/11] fix: use meta --- .../components/map-container/selected-layers-container.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index 95563ee77..e63a5911f 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -112,7 +112,11 @@ export const SelectedLayersContainer: React.FC = observer(() => { )} onReady={(tileset) => { const primitive = tileset as unknown as Record; - primitive.properties = { name: layer.productName }; + primitive.meta = { + layerRecord: { + productName: layer.productName, + }, + }; }} /> ); From 3d3c5dfba5cc20bb345ee70a6613425c32c07068 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Sun, 21 Jun 2026 22:01:55 +0300 Subject: [PATCH 05/11] feat: 3D models meta --- .../map-container/selected-layers-container.tsx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index e63a5911f..93b9d67be 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -110,13 +110,9 @@ export const SelectedLayersContainer: React.FC = observer(() => { layerLink.url as string, (layer as Layer3DRecordModelType).productVersion as string )} - onReady={(tileset) => { - const primitive = tileset as unknown as Record; - primitive.meta = { - layerRecord: { - productName: layer.productName, - }, - }; + meta={{ + id: layer.id, + layerRecord: { ...layer }, }} /> ); From 3c0fc1e6e0e11879f34b3cd02c4fa37f20cf658c Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 22 Jun 2026 13:36:46 +0300 Subject: [PATCH 06/11] fix: base map internal --- .../components/map-container/selected-layers-container.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index 93b9d67be..a257e0d36 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -8,6 +8,7 @@ import { CesiumWMTSLayer, CesiumXYZLayer, ICesiumImageryLayer, + isBaseMapLayer, useCesiumMap, } from '@map-colonies/react-components'; import CONFIG from '../../../common/config'; @@ -140,11 +141,11 @@ export const SelectedLayersContainer: React.FC = observer(() => { const cesiumLayerLinkUrl = getUrlWithoutQueryParams( get(cesiumLayer, '_imageryProvider._resource._url') as string | undefined ); - const isBaseLayer = get(cesiumLayer, 'meta.parentBasetMapId') as string; if (!linkUrl || !cesiumLayerLinkUrl) { return false; } - const isLayerFound = linkUrl === cesiumLayerLinkUrl && !isBaseLayer; + const isLayerFound = + linkUrl === cesiumLayerLinkUrl && !isBaseMapLayer(cesiumLayer.meta); return isLayerFound; }) as SearchLayerPredicate, layerRecord: { From c4b2663b1292d458e887ef2cf450ceb217aed99b Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Mon, 22 Jun 2026 18:45:57 +0300 Subject: [PATCH 07/11] fix: encapsulate cesium internals --- .../components/map-container/selected-layers-container.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index a257e0d36..e9db7d4c0 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -7,6 +7,7 @@ import { CesiumWFSLayer, CesiumWMTSLayer, CesiumXYZLayer, + getImageryProviderUrl, ICesiumImageryLayer, isBaseMapLayer, useCesiumMap, @@ -79,7 +80,7 @@ export const SelectedLayersContainer: React.FC = observer(() => { ); const linkUrl = getUrlWithoutQueryParams(correctLinkByProtocol?.url); const cesiumLayerLinkUrl = getUrlWithoutQueryParams( - get(cesiumLayer, '_imageryProvider._resource._url') as string | undefined + getImageryProviderUrl(cesiumLayer) ); if (!linkUrl || !cesiumLayerLinkUrl) { return false; @@ -136,10 +137,10 @@ export const SelectedLayersContainer: React.FC = observer(() => { id: layer.id, searchLayerPredicate: ((cesiumLayer, idx) => { const linkUrl = getUrlWithoutQueryParams( - get(optionsWMTS, 'url._url') as string | undefined + get(optionsWMTS, 'url.url') as string | undefined ); const cesiumLayerLinkUrl = getUrlWithoutQueryParams( - get(cesiumLayer, '_imageryProvider._resource._url') as string | undefined + getImageryProviderUrl(cesiumLayer) ); if (!linkUrl || !cesiumLayerLinkUrl) { return false; From 4a82da244d9ebd34282e27c29362d38bd6b0f9fb Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 23 Jun 2026 09:21:55 +0300 Subject: [PATCH 08/11] fix: when predicate fails meta.id is never attached so managed raster treated as service layer --- .../components/map-container/selected-layers-container.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index e9db7d4c0..7127370ea 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -137,7 +137,7 @@ export const SelectedLayersContainer: React.FC = observer(() => { id: layer.id, searchLayerPredicate: ((cesiumLayer, idx) => { const linkUrl = getUrlWithoutQueryParams( - get(optionsWMTS, 'url.url') as string | undefined + get(optionsWMTS, 'url._url') as string | undefined ); const cesiumLayerLinkUrl = getUrlWithoutQueryParams( getImageryProviderUrl(cesiumLayer) From e97bbb983953647fee950646c21378e2eec615c5 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Tue, 23 Jun 2026 15:22:04 +0300 Subject: [PATCH 09/11] fix: data layer layerRecord --- .../geojson-map-features/polygonParts.tsx | 199 +++++++++--------- .../selected-layers-container.tsx | 2 +- 2 files changed, 102 insertions(+), 99 deletions(-) diff --git a/src/discrete-layer/components/map-container/geojson-map-features/polygonParts.tsx b/src/discrete-layer/components/map-container/geojson-map-features/polygonParts.tsx index fb4df45fe..9be852c63 100644 --- a/src/discrete-layer/components/map-container/geojson-map-features/polygonParts.tsx +++ b/src/discrete-layer/components/map-container/geojson-map-features/polygonParts.tsx @@ -181,105 +181,108 @@ export const PolygonParts: React.FC = observer(() => { const SHOW_PP_ZOOM_LEVEL = 7; const metaPolygonParts = { - ...activeLayer, id: `virt-PP_${activeLayer?.id}`, - featureStructure: { - layerName: 'polygonParts:layer', - aliasLayerName: `${activeLayer?.productName} (${intl.formatMessage({ - id: 'field-names.dem.layerPolygonParts', - })})`, - fields: [ - // { - // fieldName: 'id', - // aliasFieldName: 'id', - // type: 'String', - // }, - // { - // fieldName: 'catalogId', - // aliasFieldName: 'catalogId', - // type: 'String', - // }, - // { - // fieldName: 'productId', - // aliasFieldName: 'productId', - // type: 'String', - // }, - // { - // fieldName: 'productType', - // aliasFieldName: 'productType', - // type: 'String', - // }, - { - fieldName: 'sourceId', - aliasFieldName: getFieldLabelTranslation('sourceId'), - type: 'String', - }, - { - fieldName: 'sourceName', - aliasFieldName: getFieldLabelTranslation('sourceName'), - type: 'String', - }, - { - fieldName: 'productVersion', - aliasFieldName: getFieldLabelTranslation('productVersion'), - type: 'String', - }, - { - fieldName: 'ingestionDateUTC', - aliasFieldName: getFieldLabelTranslation('ingestionDateUTC'), - type: 'Date', - }, - { - fieldName: 'imagingTimeBeginUTC', - aliasFieldName: getFieldLabelTranslation('imagingTimeBeginUTC'), - type: 'Date', - }, - { - fieldName: 'imagingTimeEndUTC', - aliasFieldName: getFieldLabelTranslation('imagingTimeEndUTC'), - type: 'Date', - }, - { - fieldName: 'resolutionDegree', - aliasFieldName: getFieldLabelTranslation('resolutionDegree'), - type: 'Number', - }, - { - fieldName: 'resolutionMeter', - aliasFieldName: getFieldLabelTranslation('resolutionMeter'), - type: 'Number', - }, - { - fieldName: 'sourceResolutionMeter', - aliasFieldName: getFieldLabelTranslation('sourceResolutionMeter'), - type: 'Number', - }, - { - fieldName: 'horizontalAccuracyCe90', - aliasFieldName: getFieldLabelTranslation('horizontalAccuracyCe90'), - type: 'Number', - }, - { - fieldName: 'sensors', - aliasFieldName: getFieldLabelTranslation('sensors'), - type: 'String', - }, - { - fieldName: 'countries', - aliasFieldName: getFieldLabelTranslation('countries'), - type: 'String', - }, - { - fieldName: 'cities', - aliasFieldName: getFieldLabelTranslation('cities'), - type: 'String', - }, - { - fieldName: '_description', - aliasFieldName: getFieldLabelTranslation('description'), - type: 'String', - }, - ], + layerRecord: { + ...activeLayer, + id: `virt-PP_${activeLayer?.id}`, + featureStructure: { + layerName: 'polygonParts:layer', + aliasLayerName: `${activeLayer?.productName} (${intl.formatMessage({ + id: 'field-names.dem.layerPolygonParts', + })})`, + fields: [ + // { + // fieldName: 'id', + // aliasFieldName: 'id', + // type: 'String', + // }, + // { + // fieldName: 'catalogId', + // aliasFieldName: 'catalogId', + // type: 'String', + // }, + // { + // fieldName: 'productId', + // aliasFieldName: 'productId', + // type: 'String', + // }, + // { + // fieldName: 'productType', + // aliasFieldName: 'productType', + // type: 'String', + // }, + { + fieldName: 'sourceId', + aliasFieldName: getFieldLabelTranslation('sourceId'), + type: 'String', + }, + { + fieldName: 'sourceName', + aliasFieldName: getFieldLabelTranslation('sourceName'), + type: 'String', + }, + { + fieldName: 'productVersion', + aliasFieldName: getFieldLabelTranslation('productVersion'), + type: 'String', + }, + { + fieldName: 'ingestionDateUTC', + aliasFieldName: getFieldLabelTranslation('ingestionDateUTC'), + type: 'Date', + }, + { + fieldName: 'imagingTimeBeginUTC', + aliasFieldName: getFieldLabelTranslation('imagingTimeBeginUTC'), + type: 'Date', + }, + { + fieldName: 'imagingTimeEndUTC', + aliasFieldName: getFieldLabelTranslation('imagingTimeEndUTC'), + type: 'Date', + }, + { + fieldName: 'resolutionDegree', + aliasFieldName: getFieldLabelTranslation('resolutionDegree'), + type: 'Number', + }, + { + fieldName: 'resolutionMeter', + aliasFieldName: getFieldLabelTranslation('resolutionMeter'), + type: 'Number', + }, + { + fieldName: 'sourceResolutionMeter', + aliasFieldName: getFieldLabelTranslation('sourceResolutionMeter'), + type: 'Number', + }, + { + fieldName: 'horizontalAccuracyCe90', + aliasFieldName: getFieldLabelTranslation('horizontalAccuracyCe90'), + type: 'Number', + }, + { + fieldName: 'sensors', + aliasFieldName: getFieldLabelTranslation('sensors'), + type: 'String', + }, + { + fieldName: 'countries', + aliasFieldName: getFieldLabelTranslation('countries'), + type: 'String', + }, + { + fieldName: 'cities', + aliasFieldName: getFieldLabelTranslation('cities'), + type: 'String', + }, + { + fieldName: '_description', + aliasFieldName: getFieldLabelTranslation('description'), + type: 'String', + }, + ], + }, }, }; diff --git a/src/discrete-layer/components/map-container/selected-layers-container.tsx b/src/discrete-layer/components/map-container/selected-layers-container.tsx index 7127370ea..a7e4a4f25 100644 --- a/src/discrete-layer/components/map-container/selected-layers-container.tsx +++ b/src/discrete-layer/components/map-container/selected-layers-container.tsx @@ -173,7 +173,7 @@ export const SelectedLayersContainer: React.FC = observer(() => { } + meta={{ id: layer.id, layerRecord: { ...layer } }} withGeometryValidation={true} /> ); From b528679208b21c9a06d464965adf0e597939b068 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Thu, 25 Jun 2026 12:42:08 +0300 Subject: [PATCH 10/11] fix: new cesium map props for layerRecord --- src/discrete-layer/views/discrete-layer-view.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/discrete-layer/views/discrete-layer-view.tsx b/src/discrete-layer/views/discrete-layer-view.tsx index 1a02f2d71..093cf660f 100644 --- a/src/discrete-layer/views/discrete-layer-view.tsx +++ b/src/discrete-layer/views/discrete-layer-view.tsx @@ -1337,7 +1337,11 @@ const DiscreteLayerView: React.FC = observer(() => { imageryProvider={false} locale={mapSettingsLocale} baseMaps={store.discreteLayersStore.baseMaps} + layerManagerLayerIdMetaFieldPath={'id'} + layerManagerLayerNameMetaFieldPath={'layerRecord.productName'} layerManagerFootprintMetaFieldPath={'layerRecord.footprint'} + layerManagerDataLayerNameMetaFieldPath={'layerRecord.featureStructure.aliasLayerName'} + layerManagerDataLayerFieldsMetaFieldPath={'layerRecord.featureStructure.fields'} // @ts-ignore imageryContextMenu={} imageryContextMenuSize={contextMenuSizeByTab} From ccd4cc61118f6a1cd4cd6183f29d7fc51378eed9 Mon Sep 17 00:00:00 2001 From: ellamartirosyan Date: Sun, 28 Jun 2026 21:50:50 +0300 Subject: [PATCH 11/11] fix: mapping instead of props --- .../views/discrete-layer-view.tsx | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/discrete-layer/views/discrete-layer-view.tsx b/src/discrete-layer/views/discrete-layer-view.tsx index a7d12fed4..c7d824ee3 100644 --- a/src/discrete-layer/views/discrete-layer-view.tsx +++ b/src/discrete-layer/views/discrete-layer-view.tsx @@ -32,6 +32,7 @@ import { IContextMenuData, IDrawing, IDrawingEvent, + ILayerManagerMetaMapping, } from '@map-colonies/react-components'; import { GeocoderOptions } from '@map-colonies/react-components/dist/cesium-map/geocoder/geocoder-panel'; import { IMapLegend } from '@map-colonies/react-components/dist/cesium-map/legend'; @@ -998,6 +999,20 @@ const DiscreteLayerView: React.FC = observer(() => { return actionsMenuDimensions as MenuDimensions; }, [activeTabView, actionsMenuDimensions]); + const layerManagerMetaMapping = useMemo(() => { + return { + layer: { + id: 'id', + name: 'layerRecord.productName', + footprint: 'layerRecord.footprint', + }, + dataLayer: { + name: 'layerRecord.featureStructure.aliasLayerName', + fields: 'layerRecord.featureStructure.fields', + }, + }; + }, []); + const site = useMemo(() => currentSite(), []); const triggerCallbackFunc = (data: Feature, options: GeocoderOptions, i: number) => { @@ -1338,11 +1353,7 @@ const DiscreteLayerView: React.FC = observer(() => { imageryProvider={false} locale={mapSettingsLocale} baseMaps={store.discreteLayersStore.baseMaps} - layerManagerLayerIdMetaFieldPath={'id'} - layerManagerLayerNameMetaFieldPath={'layerRecord.productName'} - layerManagerFootprintMetaFieldPath={'layerRecord.footprint'} - layerManagerDataLayerNameMetaFieldPath={'layerRecord.featureStructure.aliasLayerName'} - layerManagerDataLayerFieldsMetaFieldPath={'layerRecord.featureStructure.fields'} + layerManagerMetaMapping={layerManagerMetaMapping} // @ts-ignore imageryContextMenu={} imageryContextMenuSize={contextMenuSizeByTab}