Skip to content

Commit

Permalink
Fix useOutsideClick, add improvements for ShadowDOM (#1914)
Browse files Browse the repository at this point in the history
* Fix `useOutsideClick` not closing when clicking in ShadowDOM

#1876 (comment)

* use `getRootNode` in `useOutsideClick` for Vue

* update changelog

* run prettier

Co-authored-by: Theodore Messinezis <7229472+theomessin@users.noreply.github.com>
  • Loading branch information
RobinMalfait and theomessin committed Oct 10, 2022
1 parent 1127a55 commit 0e147a0
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 2 deletions.
1 change: 1 addition & 0 deletions packages/@headlessui-react/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Fix `<Popover.Button as={Fragment} />` crash ([#1889](https://github.com/tailwindlabs/headlessui/pull/1889))
- Expose `close` function for `Menu` and `Menu.Item` components ([#1897](https://github.com/tailwindlabs/headlessui/pull/1897))
- Fix `useOutsideClick`, add improvements for ShadowDOM ([#1914](https://github.com/tailwindlabs/headlessui/pull/1914))

### Added

Expand Down
2 changes: 1 addition & 1 deletion packages/@headlessui-react/src/hooks/use-outside-click.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export function useOutsideClick(
}

// Ignore if the target doesn't exist in the DOM anymore
if (!target.ownerDocument.documentElement.contains(target)) return
if (!target.getRootNode().contains(target)) return

// Ignore if the target exists in one of the containers
for (let container of _containers) {
Expand Down
1 change: 1 addition & 0 deletions packages/@headlessui-vue/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed

- Expose `close` function for `Menu` and `MenuItem` components ([#1897](https://github.com/tailwindlabs/headlessui/pull/1897))
- Fix `useOutsideClick`, add improvements for ShadowDOM ([#1914](https://github.com/tailwindlabs/headlessui/pull/1914))

## [1.7.3] - 2022-09-30

Expand Down
2 changes: 1 addition & 1 deletion packages/@headlessui-vue/src/hooks/use-outside-click.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export function useOutsideClick(
}

// Ignore if the target doesn't exist in the DOM anymore
if (!target.ownerDocument.documentElement.contains(target)) return
if (!target.getRootNode().contains(target)) return

let _containers = (function resolve(containers): ContainerCollection {
if (typeof containers === 'function') {
Expand Down

0 comments on commit 0e147a0

Please sign in to comment.