UNPKG

@base-ui-components/react

Version:

Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.

45 lines (44 loc) 1.08 kB
'use client'; import * as React from 'react'; import { useMenuItem } from '../item/useMenuItem.js'; import { useForkRef } from '../../utils/useForkRef.js'; export function useMenuSubmenuTrigger(parameters) { const { id, highlighted, disabled, ref: externalRef, menuEvents, setTriggerElement, allowMouseUpTriggerRef, typingRef } = parameters; const { getRootProps: getMenuItemProps, rootRef: menuItemRef } = useMenuItem({ closeOnClick: false, disabled, highlighted, id, menuEvents, ref: externalRef, allowMouseUpTriggerRef, typingRef }); const menuTriggerRef = useForkRef(menuItemRef, setTriggerElement); const getRootProps = React.useCallback(externalProps => { return { ...getMenuItemProps({ 'aria-haspopup': 'menu', ...externalProps }), ref: menuTriggerRef }; }, [getMenuItemProps, menuTriggerRef]); return React.useMemo(() => ({ getRootProps, rootRef: menuTriggerRef }), [getRootProps, menuTriggerRef]); } export let useSubmenuTrigger;