import type { LGraphNode } from '@/lib/litegraph/src/litegraph' type PasteHandler = (files: File[]) => Promise interface NodePasteOptions { onPaste: PasteHandler fileFilter?: (file: File) => boolean allow_batch?: boolean } /** * Adds paste handling to a node */ export const useNodePaste = ( node: LGraphNode, options: NodePasteOptions ) => { const { onPaste, fileFilter = () => true, allow_batch = false } = options node.pasteFiles = function (files: File[]) { const filteredFiles = Array.from(files).filter(fileFilter) if (!filteredFiles.length) return false const paste = allow_batch ? filteredFiles : filteredFiles.slice(0, 1) void onPaste(paste) return true } }