fix(types): type ComfyDialog and ComfyAsyncDialog properly

ComfyDialog:
- Type constructor buttons parameter as HTMLButtonElement[] | null
- Type show method parameter as string | HTMLElement | HTMLElement[]
- Use definite assignment for textElement

ComfyAsyncDialog:
- Make class generic with DialogAction<T> type
- Type resolve function, show/showModal return types
- Fix button creation with proper HTMLButtonElement cast
- Add generic static prompt method

ManageGroupDialog:
- Update show method signature to match base class
- Extract nodeType from parameter for string comparisons
This commit is contained in:
Johnpaul
2026-01-16 03:29:26 +01:00
parent 5bcf9e7be0
commit 7321c6e19e
3 changed files with 28 additions and 27 deletions

View File

@@ -4,11 +4,10 @@ export class ComfyDialog<
T extends HTMLElement = HTMLElement
> extends EventTarget {
element: T
// @ts-expect-error fixme ts strict error
textElement: HTMLElement
textElement!: HTMLElement
#buttons: HTMLButtonElement[] | null
constructor(type = 'div', buttons = null) {
constructor(type = 'div', buttons: HTMLButtonElement[] | null = null) {
super()
this.#buttons = buttons
this.element = $el(type + '.comfy-modal', { parent: document.body }, [
@@ -35,8 +34,7 @@ export class ComfyDialog<
this.element.style.display = 'none'
}
// @ts-expect-error fixme ts strict error
show(html) {
show(html: string | HTMLElement | HTMLElement[]): void {
if (typeof html === 'string') {
this.textElement.innerHTML = html
} else {