From 3b5da27e0724501025ea139e2be78bf74c4c1dd4 Mon Sep 17 00:00:00 2001 From: Rizumu Ayaka Date: Sat, 24 Jan 2026 15:48:38 +0800 Subject: [PATCH] fix: add fallback for missing modelValue in WidgetSelectDropdown for both local and cloud modes --- .../components/WidgetSelectDropdown.vue | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue index 86ea6e78e..5a0528d25 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetSelectDropdown.vue @@ -151,11 +151,29 @@ const outputItems = computed(() => { * Creates a fallback item for the current modelValue when it doesn't exist * in the available items list. This handles cases like template-loaded nodes * where the saved value may not exist in the current server environment. + * Works for both local mode (inputItems/outputItems) and cloud mode (assetData). */ const missingValueItem = computed(() => { const currentValue = modelValue.value if (!currentValue) return null + // Check in cloud mode assets + if (props.isAssetMode && assetData) { + const existsInAssets = assetData.dropdownItems.value.some( + (item) => item.name === currentValue + ) + if (existsInAssets) return null + + return { + id: `missing-${currentValue}`, + mediaSrc: '', + name: currentValue, + label: currentValue, + metadata: '' + } + } + + // Check in local mode inputs/outputs const existsInInputs = inputItems.value.some( (item) => item.name === currentValue ) @@ -181,7 +199,11 @@ const missingValueItem = computed(() => { const allItems = computed(() => { if (props.isAssetMode && assetData) { - return assetData.dropdownItems.value + const items = assetData.dropdownItems.value + if (missingValueItem.value) { + return [missingValueItem.value, ...items] + } + return items } return [ ...(missingValueItem.value ? [missingValueItem.value] : []),