[TS] Fix / consolidate DOM widget types (#3830)

This commit is contained in:
filtered
2025-05-09 16:24:31 +10:00
committed by GitHub
parent 3501b480d4
commit 0f95ed852e
2 changed files with 12 additions and 14 deletions

View File

@@ -152,7 +152,7 @@ abstract class BaseDOMWidgetImpl<V extends object | string>
this.options.onDraw?.(this)
}
onRemove(): void {
override onRemove(): void {
useDomWidgetStore().unregisterWidget(this.id)
}
}
@@ -175,7 +175,7 @@ export class DOMWidgetImpl<T extends HTMLElement, V extends object | string>
}
/** Extract DOM widget size info */
computeLayoutSize(node: LGraphNode) {
override computeLayoutSize(node: LGraphNode) {
if (this.type === 'hidden') {
return {
minHeight: 0,
@@ -239,7 +239,7 @@ export class ComponentWidgetImpl<V extends object | string>
this.inputSpec = obj.inputSpec
}
computeLayoutSize() {
override computeLayoutSize() {
const minHeight = this.options.getMinHeight?.() ?? 50
const maxHeight = this.options.getMaxHeight?.()
return {

View File

@@ -32,15 +32,15 @@ declare module '@comfyorg/litegraph/dist/types/widgets' {
}
interface IBaseWidget {
onRemove?: () => void
beforeQueued?: () => unknown
afterQueued?: () => unknown
onRemove?(): void
beforeQueued?(): unknown
afterQueued?(): unknown
serializeValue?(node: LGraphNode, index: number): Promise<unknown> | unknown
/**
* Refreshes the widget's value or options from its remote source.
*/
refresh?: () => unknown
refresh?(): unknown
/**
* If the widget supports dynamic prompts, this will be set to true.
@@ -54,6 +54,8 @@ declare module '@comfyorg/litegraph/dist/types/widgets' {
* ComfyUI extensions of litegraph
*/
declare module '@comfyorg/litegraph' {
import type { IBaseWidget } from '@comfyorg/litegraph/dist/types/widgets'
interface LGraphNodeConstructor<T extends LGraphNode = LGraphNode> {
type?: string
comfyClass: string
@@ -63,13 +65,9 @@ declare module '@comfyorg/litegraph' {
new (): T
}
interface TextWidget {
dynamicPrompts?: boolean
}
interface BaseWidget {
serializeValue?(node: LGraphNode, index: number): Promise<unknown> | unknown
}
// Add interface augmentations into the class itself
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
interface BaseWidget extends IBaseWidget {}
interface LGraphNode {
constructor: LGraphNodeConstructor