feat(canvas): hide widgets marked advanced unless node.showAdvanced is true (#8147)

Hides widgets marked with `options.advanced = true` on the Vue Node
canvas unless `node.showAdvanced` is true.

## Changes
- Updates `NodeWidgets.vue` template to check `widget.options.advanced`
combined with `nodeData.showAdvanced`
- Updates `gridTemplateRows` computed to exclude hidden advanced widgets
- Adds `showAdvanced` to `VueNodeData` interface in
`useGraphNodeManager.ts`

## Related
- Backend PR that adds `advanced` flag: comfyanonymous/ComfyUI#11939
- Toggle button PR: feat/advanced-widgets-toggle-button

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8147-feat-canvas-hide-widgets-marked-advanced-unless-node-showAdvanced-is-true-2ec6d73d36508179931ce78a6ffd6b0a)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
This commit is contained in:
Christian Byrne
2026-01-20 22:02:16 -08:00
committed by GitHub
parent d9e5b07c73
commit c7b5f47055
3 changed files with 23 additions and 4 deletions

View File

@@ -25,7 +25,10 @@
:key="`widget-${index}-${widget.name}`"
>
<div
v-if="!widget.simplified.options?.hidden"
v-if="
!widget.simplified.options?.hidden &&
(!widget.simplified.options?.advanced || nodeData?.showAdvanced)
"
class="lg-node-widget group col-span-full grid grid-cols-subgrid items-stretch"
>
<!-- Widget Input Slot Dot -->
@@ -206,7 +209,12 @@ const gridTemplateRows = computed((): string => {
if (!nodeData?.widgets) return ''
const processedNames = new Set(toValue(processedWidgets).map((w) => w.name))
return nodeData.widgets
.filter((w) => processedNames.has(w.name) && !w.options?.hidden)
.filter(
(w) =>
processedNames.has(w.name) &&
!w.options?.hidden &&
(!w.options?.advanced || nodeData?.showAdvanced)
)
.map((w) =>
shouldExpand(w.type) || w.hasLayoutSize ? 'auto' : 'min-content'
)