diff --git a/src/extensions/core/previewAny.ts b/src/extensions/core/previewAny.ts index 3de4ca2f3..d14cfa587 100644 --- a/src/extensions/core/previewAny.ts +++ b/src/extensions/core/previewAny.ts @@ -17,10 +17,10 @@ useExtensionService().registerExtension({ nodeType.prototype.onNodeCreated = function () { onNodeCreated ? onNodeCreated.apply(this, []) : undefined - const showValueWidget = ComfyWidgets['STRING']( + const showValueWidget = ComfyWidgets['MARKDOWN']( this, 'preview', - ['STRING', { multiline: true }], + ['MARKDOWN', {}], app ).widget as DOMWidget diff --git a/src/renderer/extensions/vueNodes/widgets/components/WidgetMarkdown.vue b/src/renderer/extensions/vueNodes/widgets/components/WidgetMarkdown.vue index 5d6bc3620..fea8df055 100644 --- a/src/renderer/extensions/vueNodes/widgets/components/WidgetMarkdown.vue +++ b/src/renderer/extensions/vueNodes/widgets/components/WidgetMarkdown.vue @@ -57,7 +57,7 @@ const renderedHtml = computed(() => { // Methods const startEditing = async () => { - if (isEditing.value) return + if (isEditing.value || widget.options?.read_only) return isEditing.value = true await nextTick() diff --git a/src/renderer/extensions/vueNodes/widgets/composables/useProgressTextWidget.ts b/src/renderer/extensions/vueNodes/widgets/composables/useProgressTextWidget.ts index 2e7f35f86..d3e412b85 100644 --- a/src/renderer/extensions/vueNodes/widgets/composables/useProgressTextWidget.ts +++ b/src/renderer/extensions/vueNodes/widgets/composables/useProgressTextWidget.ts @@ -6,6 +6,7 @@ import type { InputSpec } from '@/schemas/nodeDef/nodeDefSchemaV2' import { ComponentWidgetImpl, addWidget } from '@/scripts/domWidget' import type { ComponentWidgetStandardProps } from '@/scripts/domWidget' import type { ComfyWidgetConstructorV2 } from '@/scripts/widgets' +import type { IBaseWidget } from '@/lib/litegraph/src/types/widgets' type TextPreviewCustomProps = Omit< InstanceType['$props'], @@ -14,15 +15,15 @@ type TextPreviewCustomProps = Omit< const PADDING = 16 -export const useTextPreviewWidget = ( +export function useTextPreviewWidget( options: { minHeight?: number } = {} -) => { - const widgetConstructor: ComfyWidgetConstructorV2 = ( +): ComfyWidgetConstructorV2 { + function widgetConstructor( node: LGraphNode, inputSpec: InputSpec - ) => { + ): IBaseWidget { const widgetValue = ref('') const widget = new ComponentWidgetImpl< string | object, @@ -41,8 +42,10 @@ export const useTextPreviewWidget = ( widgetValue.value = typeof value === 'string' ? value : String(value) }, getMinHeight: () => options.minHeight ?? 42 + PADDING, - serialize: false - } + serialize: false, + read_only: true + }, + type: inputSpec.type }) addWidget(node, widget) return widget diff --git a/src/renderer/extensions/vueNodes/widgets/registry/widgetRegistry.ts b/src/renderer/extensions/vueNodes/widgets/registry/widgetRegistry.ts index 4f91c0c1b..f093f88b9 100644 --- a/src/renderer/extensions/vueNodes/widgets/registry/widgetRegistry.ts +++ b/src/renderer/extensions/vueNodes/widgets/registry/widgetRegistry.ts @@ -134,7 +134,11 @@ const coreWidgetDefinitions: Array<[string, WidgetDefinition]> = [ ], [ 'markdown', - { component: WidgetMarkdown, aliases: ['MARKDOWN'], essential: false } + { + component: WidgetMarkdown, + aliases: ['MARKDOWN', 'progressText'], + essential: false + } ], ['legacy', { component: WidgetLegacy, aliases: [], essential: true }], [ diff --git a/src/scripts/domWidget.ts b/src/scripts/domWidget.ts index a550a4145..16124597f 100644 --- a/src/scripts/domWidget.ts +++ b/src/scripts/domWidget.ts @@ -303,10 +303,11 @@ export class ComponentWidgetImpl< inputSpec: InputSpec props?: P options: DOMWidgetOptions + type?: string }) { super({ - ...obj, - type: 'custom' + type: 'custom', + ...obj }) this.component = obj.component this.inputSpec = obj.inputSpec