diff --git a/show-text/showText.js b/show-text/showText.js index bc20af9..fb1a117 100644 --- a/show-text/showText.js +++ b/show-text/showText.js @@ -7,29 +7,30 @@ app.registerExtension({ name: "pysssss.ShowText", async beforeRegisterNodeDef(nodeType, nodeData, app) { if (nodeData.name === "ShowText") { - // When the node is created we want to add a readonly text widget to display the text - const onNodeCreated = nodeType.prototype.onNodeCreated; - nodeType.prototype.onNodeCreated = function () { - const r = onNodeCreated?.apply(this, arguments); - - const w = ComfyWidgets["STRING"](this, "text", ["STRING", { multiline: true }], app).widget; - w.inputEl.readOnly = true; - w.inputEl.style.opacity = 0.6; - - return r; - }; - // When the node is executed we will be sent the input text, display this in the widget const onExecuted = nodeType.prototype.onExecuted; nodeType.prototype.onExecuted = function (message) { onExecuted?.apply(this, arguments); - this.widgets[0].value = message.text; - - if (this.size[1] < 180) { - this.setSize([this.size[0], 180]); + if (this.widgets) { + const pos = this.widgets.findIndex((w) => w.name === "text"); + if (pos !== -1) { + for (let i = pos; i < this.widgets.length; i++) { + this.widgets[i].onRemove?.(); + } + this.widgets.length = pos; + } } + + for (const list of message.text) { + const w = ComfyWidgets["STRING"](this, "text", ["STRING", { multiline: true }], app).widget; + w.inputEl.readOnly = true; + w.inputEl.style.opacity = 0.6; + w.value = list; + } + + this.onResize?.(this.size); }; } }, -}); \ No newline at end of file +});