Skip to content

Commit cfeeebb

Browse files
author
Ana Silva
committed
fix: Menu
1 parent 7eae226 commit cfeeebb

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

packages/svelteui-core/src/components/Menu/Menu.svelte

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
let delayTimeout: number;
5252
let referenceElement: HTMLButtonElement = $state(undefined);
5353
let dropdownElement: HTMLDivElement = $state(undefined);
54-
let controlElement: HTMLElement = $state(undefined);
54+
let controlElement: HTMLButtonElement = $state(undefined);
5555
let hovered: number = $state(-1);
5656
5757
/** Function that allows changing the state of the menu from outside the component */
@@ -91,16 +91,16 @@
9191
onMount(() => {
9292
if (!control) return;
9393
94-
controlElement = element.children[0] as HTMLElement;
94+
controlElement = element.children[0] as HTMLButtonElement;
95+
referenceElement = controlElement;
9596
controlElement.setAttribute('role', 'button');
9697
controlElement.setAttribute('aria-haspopup', 'menu');
9798
controlElement.setAttribute('aria-expanded', String(opened));
9899
controlElement.setAttribute('aria-controls', uuid);
99100
if (menuButtonLabel) controlElement.setAttribute('aria-label', menuButtonLabel);
100101
101102
controlElement.addEventListener('click', (event) => {
102-
event.stopPropagation();
103-
toggleMenu();
103+
toggleMenu(event);
104104
});
105105
controlElement.addEventListener('mouseenter', () =>
106106
trigger === 'hover' ? handleOpen() : null
@@ -122,7 +122,9 @@
122122
onopen();
123123
};
124124
125-
const toggleMenu = () => {
125+
const toggleMenu = (event?: Event) => {
126+
event?.stopPropagation();
127+
126128
if (opened) return handleClose();
127129
return handleOpen();
128130
};
@@ -207,8 +209,8 @@
207209
[clickoutside, clickOutsideParams]
208210
]}
209211
class={cx(classes.root, className)}
210-
on:mouseleave={handleMouseLeave}
211-
on:mouseenter={handleMouseEnter}
212+
onmouseleave={handleMouseLeave}
213+
onmouseenter={handleMouseEnter}
212214
{...rest}
213215
>
214216
{#if control}
@@ -222,9 +224,9 @@
222224
aria-controls={uuid}
223225
aria-label={menuButtonLabel}
224226
title={menuButtonLabel}
225-
on:click!stopPropagation={toggleMenu}
226-
on:keydown={(event) => handleKeyDown(castKeyboardEvent(event))}
227-
on:mouseenter={() => (trigger === 'hover' ? handleOpen() : null)}
227+
onclick={toggleMenu}
228+
onkeydown={(event) => handleKeyDown(castKeyboardEvent(event))}
229+
onmouseenter={() => (trigger === 'hover' ? handleOpen() : null)}
228230
/>
229231
{/if}
230232
<PopperContainer {withinPortal}>
@@ -249,7 +251,7 @@
249251
class={cx(classes.body)}
250252
aria-orientation="vertical"
251253
{radius}
252-
on:mouseleave={() => (hovered = -1)}
254+
onmouseleave={() => (hovered = -1)}
253255
{shadow}
254256
>
255257
{@render children?.()}

0 commit comments

Comments
 (0)