diff --git a/app/javascript/mastodon/components/dropdown_menu.tsx b/app/javascript/mastodon/components/dropdown_menu.tsx index 8e765d1a65..42130ab597 100644 --- a/app/javascript/mastodon/components/dropdown_menu.tsx +++ b/app/javascript/mastodon/components/dropdown_menu.tsx @@ -186,13 +186,16 @@ export const DropdownMenu = ({ (e: React.MouseEvent | React.KeyboardEvent) => { const i = Number(e.currentTarget.getAttribute('data-index')); const item = items?.[i]; + const isItemDisabled = Boolean( + item && typeof item === 'object' && 'disabled' in item && item.disabled, + ); - onClose(); - - if (!item) { + if (!item || isItemDisabled) { return; } + onClose(); + if (typeof onItemClick === 'function') { e.preventDefault(); onItemClick(item, i); @@ -233,7 +236,7 @@ export const DropdownMenu = ({ onClick={handleItemClick} onKeyUp={handleItemKeyUp} data-index={i} - disabled={disabled} + aria-disabled={disabled} > @@ -320,7 +323,7 @@ export const DropdownMenu = ({ ); }; -interface DropdownProps { +interface DropdownProps { children?: React.ReactElement; icon?: string; iconComponent?: IconProp; @@ -348,7 +351,7 @@ interface DropdownProps { const offset = [5, 5] as OffsetValue; const popperConfig = { strategy: 'fixed' } as UsePopperOptions; -export const Dropdown = ({ +export const Dropdown = ({ children, icon, iconComponent, diff --git a/app/javascript/mastodon/components/status/boost_button.tsx b/app/javascript/mastodon/components/status/boost_button.tsx index b34988de47..7352c0c535 100644 --- a/app/javascript/mastodon/components/status/boost_button.tsx +++ b/app/javascript/mastodon/components/status/boost_button.tsx @@ -180,7 +180,7 @@ const ReblogMenuItem: FC = ({