@@ -74,7 +81,7 @@
Edit
- {:else}
+ {:else if app.deployed}
@@ -94,7 +101,7 @@
transition: border 130ms ease-out;
border: 1px solid transparent;
}
- .app-row:hover {
+ .app-row:not(.unclickable):hover {
cursor: pointer;
border-color: var(--spectrum-global-color-gray-300);
}
diff --git a/packages/client/src/components/Component.svelte b/packages/client/src/components/Component.svelte
index 6694022b98..6d6af91dcc 100644
--- a/packages/client/src/components/Component.svelte
+++ b/packages/client/src/components/Component.svelte
@@ -113,6 +113,9 @@
// List of context keys which we use inside bindings
let knownContextKeyMap = {}
+ // Cleanup function to stop observing context changes when unmounting
+ let unobserve
+
// Set up initial state for each new component instance
$: initialise(instance)
@@ -311,6 +314,11 @@
// Force an initial enrichment of the new settings
enrichComponentSettings(get(context), settingsDefinitionMap)
+
+ // Start observing changes in context now that we are initialised
+ if (!unobserve) {
+ unobserve = context.actions.observeChanges(handleContextChange)
+ }
}
// Extracts a map of all context keys which are required by action settings
@@ -567,8 +575,8 @@
}
}
- // Register an unregister component instance
onMount(() => {
+ // Register this component instance for external access
if ($appStore.isDevApp) {
if (!componentStore.actions.isComponentRegistered(id)) {
componentStore.actions.registerInstance(id, {
@@ -581,16 +589,17 @@
state: store,
})
}
- return () => {
- if (componentStore.actions.isComponentRegistered(id)) {
- componentStore.actions.unregisterInstance(id)
- }
+ }
+ return () => {
+ // Unregister component
+ if (componentStore.actions.isComponentRegistered(id)) {
+ componentStore.actions.unregisterInstance(id)
}
+
+ // Stop observing context changes
+ unobserve?.()
}
})
-
- // Observe changes to context
- onMount(() => context.actions.observeChanges(handleContextChange))
{#if constructor && initialSettings && (visible || inSelectedPath) && !builderHidden}