@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
3 lines (2 loc) • 1.61 kB
JavaScript
"use client";
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("@mui/material/FormControl"),l=require("@mui/material/FormHelperText"),t=require("@mui/material/InputLabel"),a=require("@mui/material/MenuItem"),i=require("@mui/material/Select"),u=require("react-hook-form"),o=require("../../locales/index.js"),s=require("../locale.json.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=d(r),m=d(l),c=d(t),f=d(a),x=d(i);const j="NexusFormSelect";exports.FormSelect=({label:r,name:l,rules:t,options:a,includeNoneOption:i,fullWidth:d,required:$,disabled:b,defaultValue:p,variant:q,customSelectItem:h,sx:v,controllerProps:F,...I})=>{const{control:N}=u.useFormContext(),S=o.useTranslate(s.default,"FormSelect"),C=h;return e.jsx(u.Controller,{...F,control:N,name:l,rules:t,defaultValue:p,render:({field:{...t},fieldState:{error:u}})=>e.jsxs(n.default,{fullWidth:d,required:$,sx:v,disabled:b,variant:q,error:!!u,children:[e.jsx(c.default,{required:$,id:`form-select-label-${I.id||""}`,children:r}),e.jsxs(x.default,{labelId:`form-select-label-${I.id||""}`,"data-testid":`${j}-${l}`,className:`${j}-${l}`,...I,...t,label:r,children:[i&&e.jsx(f.default,{value:"",className:`${j}-${l}-noneItem`,"data-testid":`${j}-${l}-noneItem`,children:e.jsx("em",{children:S("None")})},"option-none"),a.map((r=>e.jsx(f.default,{value:r.value,disabled:r.disabled,className:`${j}-${l}-item`,"data-testid":`${j}-${l}-item`,children:C?e.jsx(C,{option:r}):r.label},r.value)))]}),u?e.jsx(m.default,{error:!0,children:u?.message}):null]})})};