& {
- label:string,
- selectClass:string|undefined,
- className:string,
- selectArray:SelectBox1[],
- onSelectValue:(val:string|number)=>void,
- value?: string|number,
- readOnly?: boolean // readOnly 속성 추가
+ label: string;
+ selectClass: string | undefined;
+ className: string;
+ selectArray: SelectBox1[];
+ onSelectValue: (val: string | number) => void;
+ value?: string | number;
+ readOnly?: boolean; // readOnly 속성 추가
}
->(({ label, className, selectClass, selectArray, onSelectValue, value, readOnly = false }, ref)=>{
- // hidden이 true인 첫 번째 항목을 placeholder로 사용
- const hiddenItem = selectArray.find(item => item.hidden);
- const placeHolder = hiddenItem?.text ?? "선택";
-
- // hidden이 true인 항목만 드롭다운에서 제외
- const visibleItems = selectArray.filter(item => !item.hidden);
+>(
+ (
+ {
+ label,
+ className,
+ selectClass,
+ selectArray,
+ onSelectValue,
+ value,
+ readOnly = false,
+ },
+ ref,
+ ) => {
+ // hidden이 true인 첫 번째 항목을 placeholder로 사용
+ const hiddenItem = selectArray.find((item) => item.hidden);
+ const placeHolder = hiddenItem?.text ?? "선택";
+ const [isOpen, setIsOpen] = useState(false);
+ // hidden이 true인 항목만 드롭다운에서 제외
+ const visibleItems = selectArray.filter((item) => !item.hidden);
- // 현재 값이 hidden 항목이거나 빈 값인 경우 undefined로 설정하여 placeholder가 표시되도록 함
- const currentValue = value !== undefined &&
- hiddenItem &&
- (String(value) === String(hiddenItem.val) || value === "" || value === "0" || value === 0)
- ? undefined
- : (value !== undefined ? String(value) : undefined);
+ // 현재 값이 hidden 항목이거나 빈 값인 경우 undefined로 설정하여 placeholder가 표시되도록 함
+ const currentValue =
+ value !== undefined &&
+ hiddenItem &&
+ (String(value) === String(hiddenItem.val) ||
+ value === "" ||
+ value === "0" ||
+ value === 0)
+ ? undefined
+ : value !== undefined
+ ? String(value)
+ : undefined;
- return (
-
- {label && }
-
-
- )
-})
+ return (
+
+ {label && (
+
+ )}
+
+
+ );
+ },
+);
export { SelectBox };