This commit is contained in:
pwwang 2024-11-12 05:24:18 +00:00 committed by GitHub
commit 6b1fb7ee56
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 14 additions and 2 deletions

View file

@ -55,6 +55,9 @@
/** Obtain a reference to the overflow menu element */ /** Obtain a reference to the overflow menu element */
export let menuRef = null; export let menuRef = null;
/** Persist the open state when click the items */
export let persistentClickItems = true;
import { import {
createEventDispatcher, createEventDispatcher,
getContext, getContext,
@ -203,8 +206,11 @@
class:bx--overflow-menu--xl="{size === 'xl'}" class:bx--overflow-menu--xl="{size === 'xl'}"
{...$$restProps} {...$$restProps}
on:click on:click
on:click="{({ target }) => { on:click="{(e) => {
if (!(menuRef && menuRef.contains(target))) { if (persistentClickItems) {
e.stopPropagation(); // this propagate to window.click to cause close
}
if (!(menuRef && menuRef.contains(e.target))) {
open = !open; open = !open;
if (!open) dispatch('close'); if (!open) dispatch('close');
} }

View file

@ -34,6 +34,12 @@ type $Props = {
*/ */
flipped?: boolean; flipped?: boolean;
/**
* Set to `true` to keep menu open after clicking the items
* @default false
*/
persistentClickItems?: boolean;
/** /**
* Specify the menu options class * Specify the menu options class
* @default undefined * @default undefined