('AppViewerContext')
- let css = $state(initCss($app.css?.conditionalwrapper, customCss))
+ let css = $state(initCss($app.css?.conditionalwrapper, untrack(() => customCss)))
let selectedConditionIndex = 0
- let currentNodeId = $state(getFirstNode(nodes)?.id ?? '')
+ let currentNodeId = $state(getFirstNode(untrack(() => nodes))?.id ?? '')
- let outputs = initOutput($worldStore, id, {
+ let outputs = initOutput($worldStore, untrack(() => id), {
currentNodeId: untrack(() => currentNodeId),
currentNodeIndex: selectedConditionIndex
})
@@ -154,7 +154,7 @@
}
}
- $componentControl[id] = {
+ $componentControl[untrack(() => id)] = {
setTab: (conditionIndex: number) => {
if (conditionIndex !== -1) {
onFocus(conditionIndex)
diff --git a/frontend/src/lib/components/apps/components/layout/AppDivider.svelte b/frontend/src/lib/components/apps/components/layout/AppDivider.svelte
index 97a698dd60..af68c3ad55 100644
--- a/frontend/src/lib/components/apps/components/layout/AppDivider.svelte
+++ b/frontend/src/lib/components/apps/components/layout/AppDivider.svelte
@@ -1,5 +1,5 @@
{#each Object.keys(components['drawercomponent'].initialData.configuration) as key (key)}
diff --git a/frontend/src/lib/components/apps/components/layout/AppList.svelte b/frontend/src/lib/components/apps/components/layout/AppList.svelte
index 46b9311f53..02431c3a33 100644
--- a/frontend/src/lib/components/apps/components/layout/AppList.svelte
+++ b/frontend/src/lib/components/apps/components/layout/AppList.svelte
@@ -1,5 +1,5 @@
diff --git a/frontend/src/lib/components/apps/editor/contextPanel/ComponentOutput.svelte b/frontend/src/lib/components/apps/editor/contextPanel/ComponentOutput.svelte
index bd0ae669fc..d2d4682674 100644
--- a/frontend/src/lib/components/apps/editor/contextPanel/ComponentOutput.svelte
+++ b/frontend/src/lib/components/apps/editor/contextPanel/ComponentOutput.svelte
@@ -1,6 +1,6 @@
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/ContextVariables.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/ContextVariables.svelte
index 6fb7b7be9b..be54285d84 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/ContextVariables.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/ContextVariables.svelte
@@ -1,7 +1,7 @@
('AppViewerContext')
let tab: TabType = $state(
- onlyFlow
+ untrack(() => onlyFlow)
? 'workspaceflows'
: unusedInlineScripts?.length > 0
? 'inlinescripts'
diff --git a/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte b/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte
index ca4b624d14..3dd36df780 100644
--- a/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte
+++ b/frontend/src/lib/components/apps/editor/settingsPanel/secondaryMenu/SecondaryMenu.svelte
@@ -1,4 +1,5 @@
diff --git a/frontend/src/lib/components/apps/svelte-grid/Grid.svelte b/frontend/src/lib/components/apps/svelte-grid/Grid.svelte
index 4ffb2414ee..fd61edce4f 100644
--- a/frontend/src/lib/components/apps/svelte-grid/Grid.svelte
+++ b/frontend/src/lib/components/apps/svelte-grid/Grid.svelte
@@ -16,7 +16,7 @@
import { getContainerHeight } from './utils/container'
import { moveItem, getItemById, specifyUndefinedColumns } from './utils/item'
- import { onMount, getContext } from 'svelte'
+ import { onMount, getContext, untrack } from 'svelte'
import { getColumn, throttle } from './utils/other'
import MoveResize from './MoveResize.svelte'
import type { FilledItem } from './types'
@@ -97,7 +97,7 @@
let container = $state()
let xPerPx = $state(0)
- let yPerPx = rowHeight
+ let yPerPx = untrack(() => rowHeight)
const onResizeThrottled = throttle(() => {
if (!getComputedCols) return
@@ -108,7 +108,7 @@
yPerPx,
width: containerWidth
})
- }, throttleUpdate)
+ }, untrack(() => throttleUpdate))
let mounted = $state(false)
@@ -261,7 +261,7 @@
}
}
- const throttleMatrix = throttle(updateMatrix, throttleResize)
+ const throttleMatrix = throttle(updateMatrix, untrack(() => throttleResize))
//let hiddenComponents = writable({})
diff --git a/frontend/src/lib/components/apps/svelte-grid/MoveResize.svelte b/frontend/src/lib/components/apps/svelte-grid/MoveResize.svelte
index 033a1a016c..d138023eed 100644
--- a/frontend/src/lib/components/apps/svelte-grid/MoveResize.svelte
+++ b/frontend/src/lib/components/apps/svelte-grid/MoveResize.svelte
@@ -1,5 +1,5 @@
diff --git a/frontend/src/lib/components/common/FileProgressBar.svelte b/frontend/src/lib/components/common/FileProgressBar.svelte
index e1f1c87839..734ec215d7 100644
--- a/frontend/src/lib/components/common/FileProgressBar.svelte
+++ b/frontend/src/lib/components/common/FileProgressBar.svelte
@@ -1,4 +1,5 @@
diff --git a/frontend/src/lib/components/common/popup/PopupV2.svelte b/frontend/src/lib/components/common/popup/PopupV2.svelte
index 55bc4312b5..42257ff53b 100644
--- a/frontend/src/lib/components/common/popup/PopupV2.svelte
+++ b/frontend/src/lib/components/common/popup/PopupV2.svelte
@@ -1,4 +1,5 @@
{#if href}
diff --git a/frontend/src/lib/components/common/tabs/Tabs.svelte b/frontend/src/lib/components/common/tabs/Tabs.svelte
index b93975c02b..1db130d16c 100644
--- a/frontend/src/lib/components/common/tabs/Tabs.svelte
+++ b/frontend/src/lib/components/common/tabs/Tabs.svelte
@@ -1,5 +1,5 @@
{#if module?.value?.type === 'aiagent'}
diff --git a/frontend/src/lib/components/flows/common/FlowCardHeader.svelte b/frontend/src/lib/components/flows/common/FlowCardHeader.svelte
index 89ac17e36b..1c95a3b2a5 100644
--- a/frontend/src/lib/components/flows/common/FlowCardHeader.svelte
+++ b/frontend/src/lib/components/flows/common/FlowCardHeader.svelte
@@ -59,8 +59,11 @@
const key = getCachedKey(path)
latestHash = cachedValues[key]?.latestHash
}
- if (flowModuleValue?.type === 'script' && flowModuleValue.path) {
- getCachedValues(flowModuleValue.path)
+ {
+ const _fmv = untrack(() => flowModuleValue)
+ if (_fmv?.type === 'script' && _fmv.path) {
+ getCachedValues(_fmv.path)
+ }
}
async function loadLatestHash(value: PathScript) {
diff --git a/frontend/src/lib/components/flows/content/FlowInputs.svelte b/frontend/src/lib/components/flows/content/FlowInputs.svelte
index 94700cc02b..0ba38e056e 100644
--- a/frontend/src/lib/components/flows/content/FlowInputs.svelte
+++ b/frontend/src/lib/components/flows/content/FlowInputs.svelte
@@ -3,7 +3,7 @@
import ToggleHubWorkspace from '$lib/components/ToggleHubWorkspace.svelte'
import Tooltip from '$lib/components/Tooltip.svelte'
- import { createEventDispatcher, getContext } from 'svelte'
+ import { createEventDispatcher, getContext, untrack } from 'svelte'
import FlowScriptPicker from '../pickers/FlowScriptPicker.svelte'
import PickHubScript from '../pickers/PickHubScript.svelte'
import WorkspaceScriptPicker from '../pickers/WorkspaceScriptPicker.svelte'
@@ -42,7 +42,7 @@
const dispatch = createEventDispatcher()
let kind: 'script' | 'failure' | 'approval' | 'trigger' = $state(
- failureModule
+ untrack(() => failureModule)
? 'failure'
: summary == 'Trigger'
? 'trigger'
diff --git a/frontend/src/lib/components/flows/content/FlowModuleComponent.svelte b/frontend/src/lib/components/flows/content/FlowModuleComponent.svelte
index dec078bd0d..1172d37193 100644
--- a/frontend/src/lib/components/flows/content/FlowModuleComponent.svelte
+++ b/frontend/src/lib/components/flows/content/FlowModuleComponent.svelte
@@ -151,7 +151,7 @@
shellcheck: false
})
- let selected = $state(preprocessorModule ? 'test' : 'inputs')
+ let selected = $state(untrack(() => preprocessorModule) ? 'test' : 'inputs')
let advancedSelected = $state('retries')
let advancedRuntimeSelected = $state('concurrency')
let s3Kind = $state('s3_client')
@@ -236,7 +236,7 @@
}
let forceReload = $state(0)
- let editorPanelSize = $state(noEditor ? 0 : flowModule.value.type == 'script' ? 30 : 50)
+ let editorPanelSize = $state(untrack(() => noEditor) ? 0 : flowModule.value.type == 'script' ? 30 : 50)
let editorSettingsPanelSize = $state(100 - untrack(() => editorPanelSize))
let stepHistoryLoader = getStepHistoryLoaderContext()
diff --git a/frontend/src/lib/components/flows/content/FlowModuleScript.svelte b/frontend/src/lib/components/flows/content/FlowModuleScript.svelte
index cde3371f38..7b63910010 100644
--- a/frontend/src/lib/components/flows/content/FlowModuleScript.svelte
+++ b/frontend/src/lib/components/flows/content/FlowModuleScript.svelte
@@ -64,7 +64,7 @@
notFound = cachedValues[key]?.notFound ?? false
}
- getCachedValues(path, hash)
+ getCachedValues(untrack(() => path), untrack(() => hash))
async function loadPreviousCode(previousHash: string) {
try {
diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
index 73d3ac1327..4b70c392fc 100644
--- a/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
+++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte
@@ -20,7 +20,7 @@
Timer,
Maximize2
} from 'lucide-svelte'
- import { createEventDispatcher, getContext } from 'svelte'
+ import { createEventDispatcher, getContext, untrack } from 'svelte'
import { fade } from 'svelte/transition'
import type { FlowEditorContext } from '../types'
import { twMerge } from 'tailwind-merge'
@@ -160,7 +160,7 @@
let editId = $state(false)
- let newId: string = $state(id ?? '')
+ let newId: string = $state(untrack(() => id) ?? '')
let moduleTest: ModuleTest | undefined = $state(undefined)
let testIsLoading = $state(false)
diff --git a/frontend/src/lib/components/flows/map/InsertModuleInner.svelte b/frontend/src/lib/components/flows/map/InsertModuleInner.svelte
index bf82f3e83a..4b17dbb389 100644
--- a/frontend/src/lib/components/flows/map/InsertModuleInner.svelte
+++ b/frontend/src/lib/components/flows/map/InsertModuleInner.svelte
@@ -3,7 +3,7 @@
diff --git a/frontend/src/lib/components/meltComponents/Tooltip.svelte b/frontend/src/lib/components/meltComponents/Tooltip.svelte
index 335e097e15..54e8047352 100644
--- a/frontend/src/lib/components/meltComponents/Tooltip.svelte
+++ b/frontend/src/lib/components/meltComponents/Tooltip.svelte
@@ -1,4 +1,5 @@
diff --git a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte
index f6a8e5f92d..cdd2abbb0d 100644
--- a/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte
+++ b/frontend/src/lib/components/propertyPicker/ObjectViewer.svelte
@@ -51,7 +51,7 @@
onselect = undefined
}: Props = $props()
- let jsonFiltered = $state(json)
+ let jsonFiltered = $state(untrack(() => json))
let search = $state('')
let searchOpen = $state(false)
diff --git a/frontend/src/lib/components/propertyPicker/ObjectViewerWrapper.svelte b/frontend/src/lib/components/propertyPicker/ObjectViewerWrapper.svelte
index d3cc8d737a..d82a3fb281 100644
--- a/frontend/src/lib/components/propertyPicker/ObjectViewerWrapper.svelte
+++ b/frontend/src/lib/components/propertyPicker/ObjectViewerWrapper.svelte
@@ -1,6 +1,6 @@
{#if !disabled}
diff --git a/frontend/src/lib/components/splitPanes/AnimatedPane.svelte b/frontend/src/lib/components/splitPanes/AnimatedPane.svelte
index 1d62dc3c7a..07e13a20e0 100644
--- a/frontend/src/lib/components/splitPanes/AnimatedPane.svelte
+++ b/frontend/src/lib/components/splitPanes/AnimatedPane.svelte
@@ -1,5 +1,5 @@
diff --git a/frontend/src/lib/components/table/DataTable.svelte b/frontend/src/lib/components/table/DataTable.svelte
index 0451cb815b..3865d2f3f4 100644
--- a/frontend/src/lib/components/table/DataTable.svelte
+++ b/frontend/src/lib/components/table/DataTable.svelte
@@ -74,7 +74,7 @@
onnext = undefined
}: Props = $props()
setContext('datatable', {
- size
+ size: untrack(() => size)
})
$effect(() => {
diff --git a/frontend/src/lib/components/triggers/email/EmailTriggerEditorInner.svelte b/frontend/src/lib/components/triggers/email/EmailTriggerEditorInner.svelte
index e5e4888f78..4c2330819d 100644
--- a/frontend/src/lib/components/triggers/email/EmailTriggerEditorInner.svelte
+++ b/frontend/src/lib/components/triggers/email/EmailTriggerEditorInner.svelte
@@ -83,7 +83,7 @@
let hasChanged = $derived(!deepEqual(getEmailTriggerConfig(), originalConfig ?? {}))
const isAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin)
const emailConfig = $derived.by(getEmailTriggerConfig)
- const captureConfig = $derived.by(isEditor ? getCaptureConfig : () => ({}))
+ const captureConfig = $derived.by(untrack(() => isEditor) ? getCaptureConfig : () => ({}))
const saveDisabled = $derived(
drawerLoading ||
!can_write ||
diff --git a/frontend/src/lib/components/triggers/gcp/GcpTriggerEditorInner.svelte b/frontend/src/lib/components/triggers/gcp/GcpTriggerEditorInner.svelte
index 6e30476154..3035a1c780 100644
--- a/frontend/src/lib/components/triggers/gcp/GcpTriggerEditorInner.svelte
+++ b/frontend/src/lib/components/triggers/gcp/GcpTriggerEditorInner.svelte
@@ -105,7 +105,7 @@
const saveDisabled = $derived(
pathError != '' || emptyString(script_path) || !isValid || !can_write || !hasChanged
)
- const captureConfig = $derived.by(isEditor ? getGcpCaptureConfig : () => ({}))
+ const captureConfig = $derived.by(untrack(() => isEditor) ? getGcpCaptureConfig : () => ({}))
export async function openEdit(
ePath: string,
diff --git a/frontend/src/lib/components/triggers/http/RouteEditorInner.svelte b/frontend/src/lib/components/triggers/http/RouteEditorInner.svelte
index 111fd96050..8f949bb22e 100644
--- a/frontend/src/lib/components/triggers/http/RouteEditorInner.svelte
+++ b/frontend/src/lib/components/triggers/http/RouteEditorInner.svelte
@@ -133,7 +133,7 @@
const isAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin)
const routeConfig = $derived.by(getRouteConfig)
- const captureConfig = $derived.by(isEditor ? getCaptureConfig : () => ({}))
+ const captureConfig = $derived.by(untrack(() => isEditor) ? getCaptureConfig : () => ({}))
const saveDisabled = $derived(
drawerLoading ||
!can_write ||
diff --git a/frontend/src/lib/components/triggers/kafka/KafkaTriggerEditorInner.svelte b/frontend/src/lib/components/triggers/kafka/KafkaTriggerEditorInner.svelte
index 0e5a2c2d68..1e418f4980 100644
--- a/frontend/src/lib/components/triggers/kafka/KafkaTriggerEditorInner.svelte
+++ b/frontend/src/lib/components/triggers/kafka/KafkaTriggerEditorInner.svelte
@@ -112,7 +112,7 @@
!hasChanged
)
const kafkaConfig = $derived.by(getSaveCfg)
- const captureConfig = $derived.by(isEditor ? getCaptureConfig : () => ({}))
+ const captureConfig = $derived.by(untrack(() => isEditor) ? getCaptureConfig : () => ({}))
$effect(() => {
is_flow = itemKind === 'flow'
diff --git a/frontend/src/lib/components/triggers/mqtt/MqttTriggerEditorInner.svelte b/frontend/src/lib/components/triggers/mqtt/MqttTriggerEditorInner.svelte
index fc34f68293..9d73481da4 100644
--- a/frontend/src/lib/components/triggers/mqtt/MqttTriggerEditorInner.svelte
+++ b/frontend/src/lib/components/triggers/mqtt/MqttTriggerEditorInner.svelte
@@ -1,4 +1,5 @@