From d678b664dca52fdb674af7bb6a8a131d71e9d995 Mon Sep 17 00:00:00 2001 From: airslice Date: Fri, 6 Oct 2023 17:21:47 +0800 Subject: [PATCH 1/6] refacotr: show installed widgets --- web/src/services/api/widgetsApi/utils.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/src/services/api/widgetsApi/utils.ts b/web/src/services/api/widgetsApi/utils.ts index 7d6e93c3f4..b289069cc4 100644 --- a/web/src/services/api/widgetsApi/utils.ts +++ b/web/src/services/api/widgetsApi/utils.ts @@ -40,8 +40,9 @@ export const getInstallableWidgets = (rawScene?: GetSceneQuery) => { return plugin?.extensions .filter( e => - e.type === PluginExtensionType.Widget && - AVAILABLE_WIDGET_IDS.includes(`reearth/${e.extensionId}`), + (e.type === PluginExtensionType.Widget && + AVAILABLE_WIDGET_IDS.includes(`reearth/${e.extensionId}`)) || + plugin.id !== "reearth", ) .map((e): InstallableWidget => { return { From cec810bed6d9273e16d8d47079dd643d4c52562b Mon Sep 17 00:00:00 2001 From: airslice Date: Fri, 6 Oct 2023 18:06:32 +0800 Subject: [PATCH 2/6] refactor: correct the condition --- web/src/services/api/widgetsApi/utils.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/web/src/services/api/widgetsApi/utils.ts b/web/src/services/api/widgetsApi/utils.ts index b289069cc4..8653b1453f 100644 --- a/web/src/services/api/widgetsApi/utils.ts +++ b/web/src/services/api/widgetsApi/utils.ts @@ -40,9 +40,8 @@ export const getInstallableWidgets = (rawScene?: GetSceneQuery) => { return plugin?.extensions .filter( e => - (e.type === PluginExtensionType.Widget && - AVAILABLE_WIDGET_IDS.includes(`reearth/${e.extensionId}`)) || - plugin.id !== "reearth", + e.type === PluginExtensionType.Widget && + (AVAILABLE_WIDGET_IDS.includes(`reearth/${e.extensionId}`) || plugin.id !== "reearth"), ) .map((e): InstallableWidget => { return { From 0b6612a73e08ea02ecab0030613d2ff6284be28f Mon Sep 17 00:00:00 2001 From: airslice Date: Fri, 6 Oct 2023 18:58:14 +0800 Subject: [PATCH 3/6] fix: ComputedFeature property --- web/src/beta/lib/core/engines/Cesium/useEngineRef.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/web/src/beta/lib/core/engines/Cesium/useEngineRef.ts b/web/src/beta/lib/core/engines/Cesium/useEngineRef.ts index c17664559b..46917b55a4 100644 --- a/web/src/beta/lib/core/engines/Cesium/useEngineRef.ts +++ b/web/src/beta/lib/core/engines/Cesium/useEngineRef.ts @@ -533,7 +533,14 @@ export default function useEngineRef( tag.computedFeature ?? { type: "computedFeature", id: tag.featureId, - properties: entity.properties, + properties: + entity.properties && + Object.fromEntries( + entity.properties.propertyNames.map(key => [ + key, + entity.properties?.getValue(viewer.clock.currentTime)?.[key], + ]), + ), } ); } From 375f188450bb0d1bc42be3884cfbea0fd3bb68ee Mon Sep 17 00:00:00 2001 From: airslice Date: Fri, 6 Oct 2023 19:43:40 +0800 Subject: [PATCH 4/6] fix: error when set id --- web/src/beta/lib/core/Map/Layers/hooks.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/src/beta/lib/core/Map/Layers/hooks.ts b/web/src/beta/lib/core/Map/Layers/hooks.ts index 66f2bd1ca1..a39cc4f436 100644 --- a/web/src/beta/lib/core/Map/Layers/hooks.ts +++ b/web/src/beta/lib/core/Map/Layers/hooks.ts @@ -369,7 +369,8 @@ export default function useHooks({ ) { // If layer property is overridden, feature is legacy layer. // So we can set layer id to prevent unnecessary render. - rawLayer.data.value.id = id; + // TODO: fix: Cannot add property id, object is not extensible + // rawLayer.data.value.id = id; } const layer2 = { id, ...omit(rawLayer, "id", "type", "children") } as Layer; From 4f26b4d39ff9f6cc746bd71343dcb055a5818bbb Mon Sep 17 00:00:00 2001 From: airslice Date: Fri, 6 Oct 2023 21:24:37 +0800 Subject: [PATCH 5/6] refactor: reverse --- web/src/beta/lib/core/Map/Layers/hooks.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/beta/lib/core/Map/Layers/hooks.ts b/web/src/beta/lib/core/Map/Layers/hooks.ts index a39cc4f436..d7ce649ed9 100644 --- a/web/src/beta/lib/core/Map/Layers/hooks.ts +++ b/web/src/beta/lib/core/Map/Layers/hooks.ts @@ -370,7 +370,7 @@ export default function useHooks({ // If layer property is overridden, feature is legacy layer. // So we can set layer id to prevent unnecessary render. // TODO: fix: Cannot add property id, object is not extensible - // rawLayer.data.value.id = id; + rawLayer.data.value.id = id; } const layer2 = { id, ...omit(rawLayer, "id", "type", "children") } as Layer; From 6d9325bfdb6d0bbf1cbdf37c7cb6afdaab92c80b Mon Sep 17 00:00:00 2001 From: keiya01 Date: Fri, 6 Oct 2023 23:17:25 +0900 Subject: [PATCH 6/6] fix --- web/src/beta/lib/core/Map/Layers/hooks.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/beta/lib/core/Map/Layers/hooks.ts b/web/src/beta/lib/core/Map/Layers/hooks.ts index d7ce649ed9..c5df15fc70 100644 --- a/web/src/beta/lib/core/Map/Layers/hooks.ts +++ b/web/src/beta/lib/core/Map/Layers/hooks.ts @@ -365,11 +365,11 @@ export default function useHooks({ rawLayer.type === "simple" && rawLayer.data?.value && // If data isn't cachable, reuse layer id for performance. - DATA_CACHE_KEYS.some(k => !rawLayer.data?.[k]) + DATA_CACHE_KEYS.some(k => !rawLayer.data?.[k]) && + Object.isExtensible(rawLayer.data.value) ) { // If layer property is overridden, feature is legacy layer. // So we can set layer id to prevent unnecessary render. - // TODO: fix: Cannot add property id, object is not extensible rawLayer.data.value.id = id; }