Skip to content

Commit b6e47cc

Browse files
authored
fix: dropdown shadow on the work item more options (#9154)
* fix: UI border and shadow on the dropdown menu usability * fix: shadow-md and border strong
1 parent 4280c4d commit b6e47cc

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

packages/ui/src/dropdowns/custom-menu.tsx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,11 @@ function CustomMenu(props: ICustomMenuDropdownProps) {
189189
}
190190
}, [isOpen, closeDropdown, useCaptureForOutsideClick]);
191191

192+
const menuContextValue = React.useMemo(
193+
() => ({ closeAllSubmenus, registerSubmenu }),
194+
[closeAllSubmenus, registerSubmenu]
195+
);
196+
192197
let menuItems = (
193198
<Menu.Items
194199
data-prevent-outside-click={!!portalElement}
@@ -200,7 +205,7 @@ function CustomMenu(props: ICustomMenuDropdownProps) {
200205
>
201206
<div
202207
className={cn(
203-
"my-1 min-w-[12rem] overflow-y-scroll rounded-md border-[0.5px] border-subtle-1 bg-surface-1 px-2 py-2.5 text-11 whitespace-nowrap focus:outline-none",
208+
"shadow-md my-1 min-w-[12rem] overflow-y-scroll rounded-md border border-strong-1 bg-surface-1 px-2 py-2.5 text-11 whitespace-nowrap ring-1 ring-strong-1/15 outline-none focus:outline-none",
204209
{
205210
"max-h-60": maxHeight === "lg",
206211
"max-h-48": maxHeight === "md",
@@ -213,7 +218,7 @@ function CustomMenu(props: ICustomMenuDropdownProps) {
213218
style={styles.popper}
214219
{...attributes.popper}
215220
>
216-
<MenuContext.Provider value={{ closeAllSubmenus, registerSubmenu }}>{children}</MenuContext.Provider>
221+
<MenuContext.Provider value={menuContextValue}>{children}</MenuContext.Provider>
217222
</div>
218223
</Menu.Items>
219224
);
@@ -228,7 +233,8 @@ function CustomMenu(props: ICustomMenuDropdownProps) {
228233
ref={dropdownRef}
229234
tabIndex={tabIndex}
230235
className={cn("relative w-min text-left", className)}
231-
onKeyDownCapture={handleKeyDown}
236+
onKeyDown={handleKeyDown}
237+
role="presentation"
232238
onClick={(e) => {
233239
e.stopPropagation();
234240
e.preventDefault();
@@ -377,6 +383,8 @@ function SubMenu(props: ICustomSubMenuProps) {
377383
toggleSubmenu();
378384
};
379385

386+
const subMenuContextValue = React.useMemo(() => ({ closeSubmenu }), [closeSubmenu]);
387+
380388
// Close submenu when clicking on other menu items
381389
React.useEffect(() => {
382390
const handleMenuItemClick = (e: Event) => {
@@ -398,20 +406,22 @@ function SubMenu(props: ICustomSubMenuProps) {
398406
<span ref={setReferenceElement} className="w-full">
399407
<Menu.Item as="div" disabled={disabled}>
400408
{({ active }) => (
401-
<div
409+
<button
410+
type="button"
402411
className={cn(
403-
"flex w-full cursor-pointer items-center justify-between rounded-sm px-1 py-1.5 text-left text-secondary select-none",
412+
"font-inherit flex w-full cursor-pointer items-center justify-between rounded-sm border-0 bg-transparent px-1 py-1.5 text-left text-secondary outline-none select-none",
404413
{
405414
"bg-layer-transparent-hover": active && !disabled,
406415
"text-placeholder": disabled,
407416
"cursor-not-allowed": disabled,
408417
}
409418
)}
410419
onClick={handleClick}
420+
disabled={disabled}
411421
>
412422
<span className="flex-1">{trigger}</span>
413423
<ChevronRightIcon className="h-3.5 w-3.5 flex-shrink-0" />
414-
</div>
424+
</button>
415425
)}
416426
</Menu.Item>
417427
</span>
@@ -423,7 +433,7 @@ function SubMenu(props: ICustomSubMenuProps) {
423433
style={styles.popper}
424434
{...attributes.popper}
425435
className={cn(
426-
"fixed z-30 min-w-[12rem] overflow-hidden rounded-md border-[0.5px] border-subtle-1 bg-surface-1 p-1 text-11",
436+
"shadow-md fixed z-30 min-w-[12rem] overflow-hidden rounded-md border border-strong-1 bg-surface-1 p-1 text-11 ring-1 ring-strong-1/15",
427437
contentClassName
428438
)}
429439
data-prevent-outside-click="true"
@@ -444,7 +454,7 @@ function SubMenu(props: ICustomSubMenuProps) {
444454
}
445455
}}
446456
>
447-
<SubMenuContext.Provider value={{ closeSubmenu }}>{children}</SubMenuContext.Provider>
457+
<SubMenuContext.Provider value={subMenuContextValue}>{children}</SubMenuContext.Provider>
448458
</div>
449459
</Portal>
450460
)}
@@ -516,7 +526,7 @@ function SubMenuContent(props: ICustomSubMenuContentProps) {
516526
return (
517527
<div
518528
className={cn(
519-
"z-[15] min-w-[12rem] overflow-hidden rounded-md border border-subtle-1 bg-surface-1 p-1 text-11",
529+
"shadow-md z-[15] min-w-[12rem] overflow-hidden rounded-md border border-strong-1 bg-surface-1 p-1 text-11 ring-1 ring-strong-1/15",
520530
className
521531
)}
522532
>

0 commit comments

Comments
 (0)