diff --git a/library/src/plugins/attributes/bind.ts b/library/src/plugins/attributes/bind.ts index 5e633615a..de806e78d 100644 --- a/library/src/plugins/attributes/bind.ts +++ b/library/src/plugins/attributes/bind.ts @@ -78,7 +78,10 @@ export const Bind: AttributePlugin = { } break case 'file': { - const syncSignal = () => { + const syncSignal = (evt: Event) => { + const target = evt.target + if ('detail' in evt || target === null) return + evt.stopImmediatePropagation() const files = [...(el.files || [])] const contents: string[] = [] const mimes: string[] = [] @@ -119,6 +122,7 @@ export const Bind: AttributePlugin = { }, ), ) + target.dispatchEvent(new CustomEvent(evt.type, {detail: true})) }) }