primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 1.32 kB
JavaScript
'use client';
import{Component as y,withComponent as b}from"@primereact/core/component";import{useListboxOption as g}from"@primereact/headless/listbox";import{mergeProps as m}from"@primeuix/utils";import*as l from"react";import{createOptionalContext as S}from"@primereact/core/utils";var[C,u]=S();import{createOptionalContext as P}from"@primereact/core/utils";var[a,R]=P();var d={as:"li",group:!1,uKey:void 0,index:void 0};var z=b({name:"Select.Option",defaultProps:d,setup(o){let i=u(),{listbox:t}=i||{},e=t?.getOptions(),r=o.props?.index??e?.findIndex(n=>n&&typeof n=="object"&&t?.props.optionKey?n[t.props.optionKey]===o.props.uKey:!1)??-1,p=e?.[r],c=o.props?.group??t?.isOptionGroup(p),s=g({option:p,index:r,group:c,context:t});return{select:i,listbox:t,listboxOption:s,option:p,index:r,...s?.state}},render(o){let{props:i,ptmi:t,select:e,listboxOption:r,index:p,selected:c,focused:s,disabled:n,group:f}=o,x=f?m(r.groupProps,{className:e?.cx("optionGroup",{index:p})},e?.ptm("optionGroup")):m(r.optionProps,{className:e?.cx("option",{index:p,selected:c,focused:s,disabled:n})},e?.ptm("option")),O=m(x,t("root"));return l.createElement(a,{value:o},l.createElement(y,{instance:o,attrs:O,children:i.children}))}});export{z as SelectOption,a as SelectOptionProvider,d as defaultOptionProps,R as useSelectOptionContext};