diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte
index ec5a794bb5..2b0c2c0fe5 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/ComponentPanel.svelte
@@ -180,6 +180,26 @@
componentSettings.item.data.componentInput = appInput
}
}
+
+ let templateChangeTimeout: NodeJS.Timeout | undefined = undefined
+ function onTemplateChange(e: CustomEvent<{ code: string }>) {
+ if (componentSettings?.item.data.componentInput?.type === 'templatev2') {
+ if (templateChangeTimeout) {
+ clearTimeout(templateChangeTimeout)
+ }
+ templateChangeTimeout = setTimeout(() => {
+ if (componentSettings?.item.data.componentInput?.type === 'templatev2') {
+ inferDeps(
+ '`' + e.detail.code + '`',
+ $worldStore.outputsById,
+ componentSettings?.item.data.componentInput,
+ app
+ )
+ console.log('inferred deps for', componentSettings?.item.data.id)
+ }
+ }, 200)
+ }
+ }
@@ -284,16 +304,7 @@
fontSize={12}
bind:code={componentSettings.item.data.componentInput.eval}
{extraLib}
- on:change={(e) => {
- if (componentSettings?.item.data.componentInput?.type === 'templatev2') {
- inferDeps(
- '`' + e.detail.code + '`',
- $worldStore.outputsById,
- componentSettings?.item.data.componentInput,
- app
- )
- }
- }}
+ on:change={onTemplateChange}
/>
{#if componentSettings.item.data?.componentInput?.type === 'templatev2'}
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/EventHandlers.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/EventHandlers.svelte
index 8a0e4acafc..86ef1df579 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/EventHandlers.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/EventHandlers.svelte
@@ -6,8 +6,12 @@
const { runnableComponents } = getContext('AppViewerContext')
- export let item: GridItem
- export let ownId: string
+ interface Props {
+ item: GridItem
+ ownId: string
+ }
+
+ let { item = $bindable(), ownId }: Props = $props()
const componentsWithEventHandler = [
'modalcomponent',
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte
index dd9c7aebb6..e8185281d4 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte
@@ -68,6 +68,7 @@
}
function inferDepsFromCode(code: string) {
+ console.log('inferDepsFromCode', id)
if (componentInput) {
inferDeps(code, $worldStore.outputsById, componentInput, app)
}