mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 11:11:53 +00:00
feat(canvas): show 'Show Advanced' button on nodes with advanced widgets (#8148)
Extends the existing 'Show Advanced' button (previously subgraph-only) to also appear on regular nodes that have widgets marked with `options.advanced = true`. ## Changes - Updates `showAdvancedInputsButton` computed to check for advanced widgets on regular nodes - Updates `handleShowAdvancedInputs` to set `node.showAdvanced = true` and trigger canvas redraw for regular nodes ## Related - Backend PR that adds `advanced` flag: comfyanonymous/ComfyUI#11939 - Canvas hide PR: feat/advanced-widgets-canvas-hide (this PR provides the toggle for that) ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8148-feat-canvas-show-Show-Advanced-button-on-nodes-with-advanced-widgets-2ec6d73d36508155a8adfa0a8ec84d46) by [Unito](https://www.unito.io)
This commit is contained in:
@@ -482,18 +482,30 @@ const lgraphNode = computed(() => {
|
|||||||
|
|
||||||
const showAdvancedInputsButton = computed(() => {
|
const showAdvancedInputsButton = computed(() => {
|
||||||
const node = lgraphNode.value
|
const node = lgraphNode.value
|
||||||
if (!node || !(node instanceof SubgraphNode)) return false
|
if (!node) return false
|
||||||
|
|
||||||
// Check if there are hidden inputs (widgets not promoted)
|
// For subgraph nodes: check for unpromoted widgets
|
||||||
const interiorNodes = node.subgraph.nodes
|
if (node instanceof SubgraphNode) {
|
||||||
const allInteriorWidgets = interiorNodes.flatMap((n) => n.widgets ?? [])
|
const interiorNodes = node.subgraph.nodes
|
||||||
|
const allInteriorWidgets = interiorNodes.flatMap((n) => n.widgets ?? [])
|
||||||
|
return allInteriorWidgets.some((w) => !w.computedDisabled && !w.promoted)
|
||||||
|
}
|
||||||
|
|
||||||
return allInteriorWidgets.some((w) => !w.computedDisabled && !w.promoted)
|
// For regular nodes: show button if there are advanced widgets and they're currently hidden
|
||||||
|
const hasAdvancedWidgets = nodeData.widgets?.some((w) => w.options?.advanced)
|
||||||
|
return hasAdvancedWidgets && !node.showAdvanced
|
||||||
})
|
})
|
||||||
|
|
||||||
function handleShowAdvancedInputs() {
|
function handleShowAdvancedInputs() {
|
||||||
const rightSidePanelStore = useRightSidePanelStore()
|
const node = lgraphNode.value
|
||||||
rightSidePanelStore.focusSection('advanced-inputs')
|
if (!node) return
|
||||||
|
|
||||||
|
if (node instanceof SubgraphNode) {
|
||||||
|
const rightSidePanelStore = useRightSidePanelStore()
|
||||||
|
rightSidePanelStore.focusSection('advanced-inputs')
|
||||||
|
} else {
|
||||||
|
node.showAdvanced = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const nodeMedia = computed(() => {
|
const nodeMedia = computed(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user