mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-04 07:00:23 +00:00
Remove extension code and setTimeout
This commit is contained in:
@@ -4,22 +4,23 @@ import type { IBaseWidget } from '@/lib/litegraph/src/types/widgets.ts'
|
||||
import { disconnectedWidget } from '@/lib/litegraph/src/widgets/DisconnectedWidget'
|
||||
import { parseProxyWidgets } from '@/schemas/proxyWidget'
|
||||
import { DOMWidgetImpl } from '@/scripts/domWidget'
|
||||
import { useExtensionService } from '@/services/extensionService'
|
||||
import { useDomWidgetStore } from '@/stores/domWidgetStore'
|
||||
import { useCanvasStore } from '@/stores/graphStore'
|
||||
|
||||
const canvasStore = useCanvasStore()
|
||||
useExtensionService().registerExtension({
|
||||
name: 'Comfy.SubgraphProxyWidgets',
|
||||
nodeCreated(node: LGraphNode) {
|
||||
if (node instanceof SubgraphNode) {
|
||||
setTimeout(() => injectProperty(node), 0)
|
||||
}
|
||||
}
|
||||
})
|
||||
function injectProperty(subgraphNode: SubgraphNode) {
|
||||
subgraphNode.properties.proxyWidgets ??= []
|
||||
const originalConfigureAfterSlots =
|
||||
SubgraphNode.prototype._internalConfigureAfterSlots
|
||||
SubgraphNode.prototype._internalConfigureAfterSlots = function () {
|
||||
const subgraphNode = this
|
||||
//Must give value to proxyWidgets prior to injecting or it won't serialize
|
||||
subgraphNode.properties.proxyWidgets ??= '[]'
|
||||
const proxyWidgets = subgraphNode.properties.proxyWidgets
|
||||
|
||||
//Takes no arguements, returns nothing
|
||||
//Sometimes called multiple times on initialization, sometimes once
|
||||
//Clobbers all widgets
|
||||
originalConfigureAfterSlots?.bind(this)?.()
|
||||
|
||||
Object.defineProperty(subgraphNode.properties, 'proxyWidgets', {
|
||||
get: () => {
|
||||
const result = subgraphNode.widgets
|
||||
|
||||
Reference in New Issue
Block a user