fix: SelectedItemsDetailInput Select 빈 값 에러 수정 및 inputType 디버깅 로그 추가

- Select 컴포넌트에서 빈 문자열 value를 가진 SelectItem 제거
- category/code 타입 필드의 옵션 로딩 디버깅 로그 추가
- 빈 값 필터링으로 'SelectItem must not have empty value' 에러 해결
- codeCategory 자동 감지 로직 디버깅 강화
This commit is contained in:
kjs
2025-11-17 15:59:25 +09:00
parent 5bf3c0fcd7
commit 289677a971
3 changed files with 43 additions and 30 deletions

View File

@@ -92,12 +92,22 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
// 🆕 필드에 codeCategory가 있으면 자동으로 옵션 로드
useEffect(() => {
const loadCodeOptions = async () => {
console.log("🔄 [loadCodeOptions] 시작:", {
additionalFields: componentConfig.additionalFields,
targetTable: componentConfig.targetTable,
});
// 🆕 code/category 타입 필드 + codeCategory가 있는 필드 모두 처리
const codeFields = componentConfig.additionalFields?.filter(
(field) => field.inputType === "code" || field.inputType === "category"
);
if (!codeFields || codeFields.length === 0) return;
console.log("🔍 [loadCodeOptions] code/category 필드:", codeFields);
if (!codeFields || codeFields.length === 0) {
console.log("⚠️ [loadCodeOptions] code/category 타입 필드가 없습니다");
return;
}
const newOptions: Record<string, Array<{ label: string; value: string }>> = { ...codeOptions };
@@ -338,15 +348,17 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
</SelectTrigger>
<SelectContent>
{categoryOptions && categoryOptions.length > 0 ? (
categoryOptions.map((option) => (
<SelectItem key={option.value} value={option.value}>
{option.label}
</SelectItem>
))
categoryOptions
.filter((option) => option.value !== "")
.map((option) => (
<SelectItem key={option.value} value={option.value}>
{option.label}
</SelectItem>
))
) : (
<SelectItem value="" disabled>
<div className="py-6 text-center text-xs text-muted-foreground">
...
</SelectItem>
</div>
)}
</SelectContent>
</Select>
@@ -374,7 +386,7 @@ export const SelectedItemsDetailInputComponent: React.FC<SelectedItemsDetailInpu
<SelectValue placeholder={field.placeholder || "선택하세요"} />
</SelectTrigger>
<SelectContent>
{field.options?.map((option) => (
{field.options?.filter((option) => option.value !== "").map((option) => (
<SelectItem key={option.value} value={option.value}>
{option.label}
</SelectItem>