Fix useOutsideClick, add improvements for ShadowDOM (#1914)
* Fix `useOutsideClick` not closing when clicking in ShadowDOM https://github.com/tailwindlabs/headlessui/pull/1876#issuecomment-1264742366 * use `getRootNode` in `useOutsideClick` for Vue * update changelog * run prettier Co-authored-by: Theodore Messinezis <7229472+theomessin@users.noreply.github.com>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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') {
|
||||
|
||||
Reference in New Issue
Block a user