diff --git a/CHANGELOG.md b/CHANGELOG.md index fb66a43..324dac7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Ensure `Escape` propagates correctly in `Combobox` component ([#1511](https://github.com/tailwindlabs/headlessui/pull/1511)) - Remove leftover code in Combobox component ([#1514](https://github.com/tailwindlabs/headlessui/pull/1514)) +- Fix event handlers with arity > 1 ([#1515](https://github.com/tailwindlabs/headlessui/pull/1515)) ## [Unreleased - @headlessui/vue] diff --git a/packages/@headlessui-react/src/utils/render.ts b/packages/@headlessui-react/src/utils/render.ts index 36369ea..7b949d8 100644 --- a/packages/@headlessui-react/src/utils/render.ts +++ b/packages/@headlessui-react/src/utils/render.ts @@ -201,7 +201,7 @@ function mergeProps(...listOfProps: Props[]) { let eventHandlers: Record< string, - ((event: { defaultPrevented: boolean }) => void | undefined)[] + ((event: { defaultPrevented: boolean }, ...args: any[]) => void | undefined)[] > = {} for (let props of listOfProps) { @@ -232,13 +232,13 @@ function mergeProps(...listOfProps: Props[]) { // Merge event handlers for (let eventName in eventHandlers) { Object.assign(target, { - [eventName](event: { defaultPrevented: boolean }) { + [eventName](event: { defaultPrevented: boolean }, ...args: any[]) { let handlers = eventHandlers[eventName] for (let handler of handlers) { if (event.defaultPrevented) return - handler(event) + handler(event, ...args) } }, })