From c4156d705999dec1104608e606d8bb50b23aa873 Mon Sep 17 00:00:00 2001 From: pythongosssss <125205205+pythongosssss@users.noreply.github.com> Date: Sun, 8 Mar 2026 00:03:55 +0000 Subject: [PATCH] feat/fix: App mode further updates (#9545) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Additional updates ## Changes - **What**: - Share widget rename functionality with properties panel implementation - Add hammer icon to builder mode tabs - Change (!) to (i) on app builder info sections ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-9545-feat-fix-App-mode-further-updates-31c6d73d36508104aaa9c5f1e6205a0b) by [Unito](https://www.unito.io) --- src/components/builder/AppBuilder.vue | 26 +++------------ .../parameters/WidgetActions.vue | 15 ++------- src/components/topbar/WorkflowTab.vue | 8 ++++- src/utils/widgetUtil.ts | 33 +++++++++++++++++++ 4 files changed, 47 insertions(+), 35 deletions(-) diff --git a/src/components/builder/AppBuilder.vue b/src/components/builder/AppBuilder.vue index d14d30f31e..9a2c5ed340 100644 --- a/src/components/builder/AppBuilder.vue +++ b/src/components/builder/AppBuilder.vue @@ -10,7 +10,6 @@ import PropertiesAccordionItem from '@/components/rightSidePanel/layout/Properti import WidgetItem from '@/components/rightSidePanel/parameters/WidgetItem.vue' import { LiteGraph } from '@/lib/litegraph/src/litegraph' import type { LGraphNode, NodeId } from '@/lib/litegraph/src/LGraphNode' -import type { INodeInputSlot } from '@/lib/litegraph/src/interfaces' import type { LGraphCanvas } from '@/lib/litegraph/src/LGraphCanvas' import { LGraphEventMode, @@ -25,7 +24,7 @@ import { useCanvasInteractions } from '@/renderer/core/canvas/useCanvasInteracti import TransformPane from '@/renderer/core/layout/transform/TransformPane.vue' import { app } from '@/scripts/app' import { DOMWidgetImpl } from '@/scripts/domWidget' -import { useDialogService } from '@/services/dialogService' +import { promptRenameWidget } from '@/utils/widgetUtil' import { useAppMode } from '@/composables/useAppMode' import { nodeTypeValidForApp, useAppModeStore } from '@/stores/appModeStore' import { resolveNode } from '@/utils/litegraphUtil' @@ -73,15 +72,12 @@ const inputsWithState = computed(() => } } - const input = node.inputs.find((i) => i.widget?.name === widget.name) - const rename = input && (() => renameWidget(widget, input)) - return { nodeId, widgetName, label: widget.label, subLabel: node.title, - rename + rename: () => promptRenameWidget(widget, node, t) } }) ) @@ -92,20 +88,6 @@ const outputsWithState = computed<[NodeId, string][]>(() => ]) ) -async function renameWidget(widget: IBaseWidget, input: INodeInputSlot) { - const newLabel = await useDialogService().prompt({ - title: t('g.rename'), - message: t('g.enterNewNamePrompt'), - defaultValue: widget.label, - placeholder: widget.name - }) - if (newLabel === null) return - widget.label = newLabel || undefined - input.label = newLabel || undefined - widget.callback?.(widget.value) - useCanvasStore().canvas?.setDirty(true) -} - function getHovered( e: MouseEvent ): undefined | [LGraphNode, undefined] | [LGraphNode, IBaseWidget] { @@ -266,7 +248,7 @@ const renderedInputs = computed<[string, MaybeRef | undefined][]>(