diff --git a/packages/@headlessui-react/src/components/disclosure/disclosure.tsx b/packages/@headlessui-react/src/components/disclosure/disclosure.tsx index ad0f2d0..3b811fe 100644 --- a/packages/@headlessui-react/src/components/disclosure/disclosure.tsx +++ b/packages/@headlessui-react/src/components/disclosure/disclosure.tsx @@ -179,19 +179,16 @@ let Button = forwardRefWithAs(function Button) => { - switch (event.key) { - case Keys.Space: - // Required for firefox, event.preventDefault() in handleKeyDown for - // the Space key doesn't cancel the handleKeyUp, which in turn - // triggers a *click*. - event.preventDefault() - break - } - }, - [dispatch] - ) + let handleKeyUp = useCallback((event: ReactKeyboardEvent) => { + switch (event.key) { + case Keys.Space: + // Required for firefox, event.preventDefault() in handleKeyDown for + // the Space key doesn't cancel the handleKeyUp, which in turn + // triggers a *click*. + event.preventDefault() + break + } + }, []) let handleClick = useCallback( (event: ReactMouseEvent) => { diff --git a/packages/@headlessui-react/src/components/listbox/listbox.tsx b/packages/@headlessui-react/src/components/listbox/listbox.tsx index 44d78b3..894ccab 100644 --- a/packages/@headlessui-react/src/components/listbox/listbox.tsx +++ b/packages/@headlessui-react/src/components/listbox/listbox.tsx @@ -307,19 +307,16 @@ let Button = forwardRefWithAs(function Button) => { - switch (event.key) { - case Keys.Space: - // Required for firefox, event.preventDefault() in handleKeyDown for - // the Space key doesn't cancel the handleKeyUp, which in turn - // triggers a *click*. - event.preventDefault() - break - } - }, - [dispatch] - ) + let handleKeyUp = useCallback((event: ReactKeyboardEvent) => { + switch (event.key) { + case Keys.Space: + // Required for firefox, event.preventDefault() in handleKeyDown for + // the Space key doesn't cancel the handleKeyUp, which in turn + // triggers a *click*. + event.preventDefault() + break + } + }, []) let handleClick = useCallback( (event: ReactMouseEvent) => { diff --git a/packages/@headlessui-react/src/components/menu/menu.tsx b/packages/@headlessui-react/src/components/menu/menu.tsx index dc74d78..d21ad5e 100644 --- a/packages/@headlessui-react/src/components/menu/menu.tsx +++ b/packages/@headlessui-react/src/components/menu/menu.tsx @@ -251,19 +251,16 @@ let Button = forwardRefWithAs(function Button) => { - switch (event.key) { - case Keys.Space: - // Required for firefox, event.preventDefault() in handleKeyDown for - // the Space key doesn't cancel the handleKeyUp, which in turn - // triggers a *click*. - event.preventDefault() - break - } - }, - [dispatch] - ) + let handleKeyUp = useCallback((event: ReactKeyboardEvent) => { + switch (event.key) { + case Keys.Space: + // Required for firefox, event.preventDefault() in handleKeyDown for + // the Space key doesn't cancel the handleKeyUp, which in turn + // triggers a *click*. + event.preventDefault() + break + } + }, []) let handleClick = useCallback( (event: ReactMouseEvent) => { @@ -430,19 +427,16 @@ let Items = forwardRefWithAs(function Items) => { - switch (event.key) { - case Keys.Space: - // Required for firefox, event.preventDefault() in handleKeyDown for - // the Space key doesn't cancel the handleKeyUp, which in turn - // triggers a *click*. - event.preventDefault() - break - } - }, - [dispatch] - ) + let handleKeyUp = useCallback((event: ReactKeyboardEvent) => { + switch (event.key) { + case Keys.Space: + // Required for firefox, event.preventDefault() in handleKeyDown for + // the Space key doesn't cancel the handleKeyUp, which in turn + // triggers a *click*. + event.preventDefault() + break + } + }, []) let slot = useMemo(() => ({ open: state.menuState === MenuStates.Open }), [ state, diff --git a/packages/@headlessui-vue/src/utils/render.test.ts b/packages/@headlessui-vue/src/utils/render.test.ts index 6b0364a..0bc0e02 100644 --- a/packages/@headlessui-vue/src/utils/render.test.ts +++ b/packages/@headlessui-vue/src/utils/render.test.ts @@ -1,4 +1,4 @@ -import { defineComponent, h } from 'vue' +import { defineComponent } from 'vue' import { render as testRender } from '../test-utils/vue-testing-library' import { render } from './render'