diff --git a/library/composables/usePaneConfig.js b/library/composables/usePaneConfig.js index 07bcbf5dd..00e4cdff0 100644 --- a/library/composables/usePaneConfig.js +++ b/library/composables/usePaneConfig.js @@ -29,7 +29,7 @@ * Re-forwarding happens inside a watchEffect, so any reactive source the getter reads — the outer * config, a computed spec, the pane's own config — triggers it. */ -import { watchEffect, onBeforeUnmount, shallowReactive } from 'vue' +import { watchEffect, onBeforeUnmount, shallowReactive, getCurrentInstance } from 'vue' /** * @param {() => (Element|null|undefined)} hostGetter the element the panes were appended under; used @@ -86,9 +86,13 @@ export function usePaneConfig(hostGetter) { } } - onBeforeUnmount(() => { if (stop) { stop(); stop = null } entries.length = 0 }) + // ★ GUARDED, the house pattern (useMapData.js:144). onBeforeUnmount only binds inside setup(); a + // caller outside one gets a Vue warning and no auto-cleanup. `dispose` is returned so such a + // caller has something to call -- silently leaking a watchEffect would be the worse half. + const dispose = () => { if (stop) { stop(); stop = null } entries.length = 0 } + if (getCurrentInstance()) onBeforeUnmount(dispose) - return { register, count: () => entries.length } + return { register, dispose, count: () => entries.length } } export default usePaneConfig diff --git a/public/dx-maps/doxa-maps-spa/manifest.json b/public/dx-maps/doxa-maps-spa/manifest.json index aeb67bee3..0345561ef 100644 --- a/public/dx-maps/doxa-maps-spa/manifest.json +++ b/public/dx-maps/doxa-maps-spa/manifest.json @@ -1144,7 +1144,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-z4ZtI4c3ouh3yVdWy9vGTsmNm0aK7GfGlsBMGtrGa+9UhUtf7iXng+k9XsBEfev3", + "integrity": "sha384-yO7462/K+x8yGefpEiZG7GWviAwgJe/N6J7WUhC3qK8mQyCLIq0SeyszkL+1FUhh", "elements": [ "regions-dashboard" ], @@ -1167,8 +1167,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1184,7 +1184,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1200,8 +1200,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json index aeb67bee3..0345561ef 100644 --- a/public/dx-maps/manifest.json +++ b/public/dx-maps/manifest.json @@ -1144,7 +1144,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-z4ZtI4c3ouh3yVdWy9vGTsmNm0aK7GfGlsBMGtrGa+9UhUtf7iXng+k9XsBEfev3", + "integrity": "sha384-yO7462/K+x8yGefpEiZG7GWviAwgJe/N6J7WUhC3qK8mQyCLIq0SeyszkL+1FUhh", "elements": [ "regions-dashboard" ], @@ -1167,8 +1167,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1184,7 +1184,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1200,8 +1200,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] diff --git a/public/dx-maps/regions-dashboard/region-dashboards/index.html b/public/dx-maps/regions-dashboard/region-dashboards/index.html index 0987b736b..21d9d9027 100644 --- a/public/dx-maps/regions-dashboard/region-dashboards/index.html +++ b/public/dx-maps/regions-dashboard/region-dashboards/index.html @@ -70,7 +70,7 @@ - + - + - +