import { memo, type MouseEvent } from 'react' import { getActionMenuButtonGroupStyles, getActionMenuButtonStyles, getActionMenuTriggerStyles, getMenuButtonStyles, splitClassNameProp, } from '@pluralsight/headless-styles' import { ChevronDownIcon } from '@pluralsight/icons' import { useAriaMenuButton, useAriaMenuSubmitButton, } from '@pluralsight/react-aria' import { Button, useMenu, useMenuTriggerInteraction, Flex, IconButton, type ButtonProps, } from '../../index.ts' // export type MenuButtonProps = ButtonProps function MenuButtonEl(props: MenuButtonProps) { const context = useMenu() const { onKeyDown } = useMenuTriggerInteraction() const pandoAriaProps = useAriaMenuButton({ expanded: context.expanded, menuId: context.menuId, id: context.triggerId, }) const pandoStyles = getMenuButtonStyles({ classNames: splitClassNameProp(props.className), }) function handleClick(e: MouseEvent) { if (props.onClick) props.onClick(e) context.setExpanded((prev) => !prev) } return ( ) } // exports /** * An action button to display a Navigation based menu * @param props the same props as the [Button](https://design.pluralsight.com/docs/reference/components/button#parameters) component * @see https://design.pluralsight.com/docs/reference/components/menu */ export const MenuButton = memo(MenuButtonEl) /** * An action button to display an ActionMenu based menu * @param props the same props as the [Button](https://design.pluralsight.com/docs/reference/components/button#parameters) component * @see https://design.pluralsight.com/docs/reference/components/menu */ export const ActionMenuButton = memo(ActionMenuButtonEl)