UNPKG

primereact

Version:

A rich set of premium UI Components for React.

4 lines (2 loc) 1.39 kB
'use client'; import{Component as y,withComponent as O}from"@primereact/core/component";import{mergeProps as R}from"@primeuix/utils";import*as o from"react";import{createOptionalContext as v}from"@primereact/core/utils";var[h,c]=v();import{createOptionalContext as S}from"@primereact/core/utils";var[k,p]=S();import{createOptionalContext as b}from"@primereact/core/utils";var[F,a]=b();import{createOptionalContext as C}from"@primereact/core/utils";var[l,q]=C();var d={as:"div",disabled:void 0,value:void 0,closeOnSelect:void 0,onSelect:void 0};var T=O({name:"Menu.Item",defaultProps:d,setup({props:e}){let t=c(),u=a(),n=p(),i=o.useId(),m=e.value!=null?String(e.value):i,r=t?.getItemId?.(m),f=!!e.disabled,I=r?t?.isFocused(r)??!1:!1,M=e.closeOnSelect??t?.props.closeOnSelect??!0,P=o.useCallback(s=>{e.onSelect?.(s),t?.props.onSelect?.(s)},[e.onSelect,t?.props.onSelect]),x=t?.getItemProps({value:m,disabled:e.disabled,type:"item",inPortal:!!n,closeOnSelect:M,onSelect:P});return{menu:t,submenu:u,portal:n,itemId:r,focused:I,isDisabled:f,itemProps:x}},render(e){let{props:t,ptmi:u,menu:n,focused:i,itemProps:m}=e,r=R(m,{className:n?.cx("item",{disabled:t.disabled,focused:i})},n?.ptm("item"),u("root"));return o.createElement(l,{value:e},o.createElement(y,{instance:e,attrs:r,children:t.children}))}});export{T as MenuItem,l as MenuItemProvider,d as defaultItemProps,q as useMenuItemContext};