fix(popover): fire "click:outside" event when clicking sibling elements (#1570)

This commit is contained in:
Maxime Fafard 2022-12-07 23:10:45 -05:00 committed by GitHub
commit 0f8a57b9d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 58 additions and 7 deletions

View file

@ -1,4 +1,8 @@
<script>
/**
* @event {{ target: HTMLElement; }} click:outside
*/
/** Set to `true` to display the popover */
export let open = false;
@ -33,8 +37,8 @@
<svelte:window
on:click="{(e) => {
if (!open) return;
if (e.target.contains(ref)) {
dispatch('click:outside');
if (!ref.contains(e.target)) {
dispatch('click:outside', { target: e.target });
if (closeOnOutsideClick) open = false;
}
}}"