UNPKG

primereact

Version:

A rich set of premium UI Components for React.

4 lines (2 loc) 1.31 kB
'use client'; import{Component as O,withComponent as L}from"@primereact/core/component";import{useListboxOption as P}from"@primereact/headless/listbox";import{mergeProps as x}from"@primeuix/utils";import*as c from"react";import{createOptionalContext as l}from"@primereact/core/utils";var[g,u]=l();import{createOptionalContext as f}from"@primereact/core/utils";var[a,I]=f();var d={as:"li",group:!1,uKey:void 0,index:void 0};var q=L({name:"Listbox.Option",defaultProps:d,setup(e){let o=u(),s=o?.getOptions(),t=e.props?.index??s?.findIndex(i=>i&&typeof i=="object"&&o?.props.optionKey?i[o.props.optionKey]===e.props.uKey:!1)??-1,r=s?.[t],p=e.props?.group??o?.isOptionGroup(r),n=P({option:r,index:t,group:p,context:o}),m=n.state.selected;return{listbox:o,listboxOption:n,option:r,index:t,group:p,selected:m}},render(e){let{props:o,ptmi:s,listbox:t,listboxOption:r,index:p,selected:n,group:m}=e,i=m?x(r.groupProps,{className:t?.cx("optionGroup",{index:p})},t?.ptm("optionGroup")):x(r.optionProps,{className:t?.cx("option",{index:p,selected:n,disabled:r.state.disabled})},t?.ptm("option")),b=x(i,s("root"));return c.createElement(a,{value:e},c.createElement(O,{instance:e,attrs:b,children:o.children}))}});export{q as ListboxOption,a as ListboxOptionProvider,d as defaultOptionProps,I as useListboxOptionContext};