From 8b20d7e88e4fc5abe10e1dbc2ce915d456222642 Mon Sep 17 00:00:00 2001 From: swcho Date: Mon, 7 Jul 2025 13:29:45 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20SELECTBOX=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20hidden=20props=20=EC=B6=94=EA=B0=80=EB=A1=9C=20plac?= =?UTF-8?q?eholder=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/select/index.tsx | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/common/business_components/src/ui/select/index.tsx b/packages/common/business_components/src/ui/select/index.tsx index 6fa78ccf2..c4e1264c4 100644 --- a/packages/common/business_components/src/ui/select/index.tsx +++ b/packages/common/business_components/src/ui/select/index.tsx @@ -5,7 +5,8 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from ". /** 차트 기본 스타일 */ interface SelectBox1 { text:string, - val:string|number + val:string|number, + hidden?: boolean } const SelectBox = React.forwardRef< @@ -20,17 +21,27 @@ const SelectBox = React.forwardRef< readOnly?: boolean // readOnly 속성 추가 } >(({ label, className, selectClass, selectArray, onSelectValue, value, readOnly = false }, ref)=>{ - const placeHolder = selectArray?.[0]?.text ?? ""; + // 첫 번째 항목을 placeholder로 사용하고 드롭다운 목록에서는 제외 + const firstItem = selectArray[0]; + const placeHolder = firstItem?.text ?? ""; + + // 첫 번째 항목(placeholder)을 제외한 나머지 항목만 드롭다운에 표시 + const visibleItems = selectArray.filter((_, index) => index !== 0); + + // 현재 값이 첫 번째 항목(placeholder)인 경우 undefined로 설정하여 placeholder가 표시되도록 함 + const currentValue = value !== undefined && String(value) === String(firstItem?.val) + ? undefined + : (value !== undefined ? String(value) : undefined); return (
{label && } - - {selectArray.map((selectArray) => ( + {visibleItems.map((selectArray) => ( {selectArray.text} ))}