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] : []),