Files
ComfyBox/src/lib/nodes/ComfyConfigureQueuePromptButton.ts
2023-05-20 23:22:56 -05:00

46 lines
1.6 KiB
TypeScript

import layoutStates from "$lib/stores/layoutStates"
import { BuiltInSlotType, LGraphNode, LiteGraph, type ITextWidget, type OptionalSlots, type PropertyLayout, type SlotLayout, type Vector2 } from "@litegraph-ts/core"
import { get } from "svelte/store"
import ComfyGraphNode from "./ComfyGraphNode"
export default class ComfyConfigureQueuePromptButton extends ComfyGraphNode {
static slotLayout: SlotLayout = {
inputs: [
{ name: "config", type: BuiltInSlotType.ACTION },
],
}
static propertyLayout: PropertyLayout = [
]
static optionalSlots: OptionalSlots = {
}
override size: Vector2 = [60, 30];
constructor(title?: string) {
super(title)
}
override onAction(action: any, param: any, options: { action_call?: string }) {
if (action === "config" && param != null) {
if (this.layoutState == null) {
console.error(this, this.getRootGraph(), Object.keys(get(layoutStates).all))
throw new Error(`Could not find layout attached to this node! ${this.id}`)
}
if (typeof param === "string")
this.workflow.setAttribute("queuePromptButtonName", param || "")
else if (typeof param === "object" && "buttonName" in param)
this.workflow.setAttribute("queuePromptButtonName", param.buttonName || "")
}
}
}
LiteGraph.registerNodeType({
class: ComfyConfigureQueuePromptButton,
title: "Comfy.ConfigureQueuePromptButton",
desc: "Sets the properties of the global queue prompt button",
type: "workflow/configure_queue_prompt_button"
})