mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-05 23:50:08 +00:00
fix: maintain original widget order in grid template for NodeWidgets
This commit is contained in:
@@ -251,21 +251,25 @@ const processedWidgets = computed((): ProcessedWidget[] => {
|
||||
|
||||
const gridTemplateRows = computed((): string => {
|
||||
if (!nodeData?.widgets) return ''
|
||||
const processed = toValue(processedWidgets)
|
||||
const advancedByName = new Map(
|
||||
processed.map((w) => [w.name, w.simplified.advanced])
|
||||
)
|
||||
// Use processedWidgets order (which may have advanced sorted to end)
|
||||
const visible = processed.filter(
|
||||
(w) =>
|
||||
!w.simplified.hidden &&
|
||||
(!advancedByName.get(w.name) || showAdvanced.value)
|
||||
)
|
||||
return visible
|
||||
.map((w) => {
|
||||
const raw = nodeData.widgets?.find((rw) => rw.name === w.name)
|
||||
return shouldExpand(w.type) || raw?.hasLayoutSize ? 'auto' : 'min-content'
|
||||
const processedNames = new Set(toValue(processedWidgets).map((w) => w.name))
|
||||
|
||||
// Always use original nodeData.widgets order for grid template,
|
||||
// even when processedWidgets may be reordered for rendering
|
||||
return nodeData.widgets
|
||||
.filter((w) => {
|
||||
if (!processedNames.has(w.name)) return false
|
||||
if (w.options?.hidden) return false
|
||||
|
||||
// Check resolved advanced state (considering overrides)
|
||||
const resolved = lgraphNode.value
|
||||
? advancedOverridesStore.getAdvancedState(lgraphNode.value, w)
|
||||
: !!w.options?.advanced
|
||||
|
||||
return !resolved || showAdvanced.value
|
||||
})
|
||||
.map((w) =>
|
||||
shouldExpand(w.type) || w.hasLayoutSize ? 'auto' : 'min-content'
|
||||
)
|
||||
.join(' ')
|
||||
})
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user