Merge branch 'iipbs/common/main' into iipbs/sn/ii
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
// selectBox
|
||||
|
||||
import { Label } from "@common/components";
|
||||
import React from "react";
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "./lib/selectBox";
|
||||
@@ -21,15 +23,17 @@ const SelectBox = React.forwardRef<
|
||||
readOnly?: boolean // readOnly 속성 추가
|
||||
}
|
||||
>(({ label, className, selectClass, selectArray, onSelectValue, value, readOnly = false }, ref)=>{
|
||||
// 첫 번째 항목을 placeholder로 사용하고 드롭다운 목록에서는 제외
|
||||
const firstItem = selectArray[0];
|
||||
const placeHolder = firstItem?.text ?? "";
|
||||
// hidden이 true인 첫 번째 항목을 placeholder로 사용
|
||||
const hiddenItem = selectArray.find(item => item.hidden);
|
||||
const placeHolder = hiddenItem?.text ?? "선택";
|
||||
|
||||
// 첫 번째 항목(placeholder)을 제외한 나머지 항목만 드롭다운에 표시
|
||||
const visibleItems = selectArray.filter((_, index) => index !== 0);
|
||||
// hidden이 true인 항목만 드롭다운에서 제외
|
||||
const visibleItems = selectArray.filter(item => !item.hidden);
|
||||
|
||||
// 현재 값이 첫 번째 항목(placeholder)인 경우 undefined로 설정하여 placeholder가 표시되도록 함
|
||||
const currentValue = value !== undefined && String(value) === String(firstItem?.val)
|
||||
// 현재 값이 hidden 항목이거나 빈 값인 경우 undefined로 설정하여 placeholder가 표시되도록 함
|
||||
const currentValue = value !== undefined &&
|
||||
hiddenItem &&
|
||||
(String(value) === String(hiddenItem.val) || value === "" || value === "0" || value === 0)
|
||||
? undefined
|
||||
: (value !== undefined ? String(value) : undefined);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user