From ad46249c8b28e2eae37e4aea25168fdf66d09cc0 Mon Sep 17 00:00:00 2001 From: kjs Date: Wed, 5 Nov 2025 18:09:16 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table-category/CategoryColumnList.tsx | 61 ++++++------------- 1 file changed, 17 insertions(+), 44 deletions(-) diff --git a/frontend/components/table-category/CategoryColumnList.tsx b/frontend/components/table-category/CategoryColumnList.tsx index 8207479a..7b82c928 100644 --- a/frontend/components/table-category/CategoryColumnList.tsx +++ b/frontend/components/table-category/CategoryColumnList.tsx @@ -20,11 +20,7 @@ interface CategoryColumnListProps { * 카테고리 컬럼 목록 (좌측 패널) * - 현재 테이블에서 input_type='category'인 컬럼들을 표시 (테이블 스코프) */ -export function CategoryColumnList({ - tableName, - selectedColumn, - onColumnSelect, -}: CategoryColumnListProps) { +export function CategoryColumnList({ tableName, selectedColumn, onColumnSelect }: CategoryColumnListProps) { const [columns, setColumns] = useState([]); const [isLoading, setIsLoading] = useState(false); @@ -36,9 +32,7 @@ export function CategoryColumnList({ setIsLoading(true); try { // table_type_columns에서 input_type = 'category'인 컬럼 조회 - const response = await apiClient.get( - `/table-management/tables/${tableName}/columns` - ); + const response = await apiClient.get(`/table-management/tables/${tableName}/columns`); console.log("🔍 테이블 컬럼 API 응답:", { tableName, @@ -49,7 +43,7 @@ export function CategoryColumnList({ // API 응답 구조 파싱 (여러 가능성 대응) let allColumns: any[] = []; - + if (Array.isArray(response.data)) { // response.data가 직접 배열인 경우 allColumns = response.data; @@ -74,7 +68,7 @@ export function CategoryColumnList({ // category 타입만 필터링 const categoryColumns = allColumns.filter( - (col: any) => col.inputType === "category" || col.input_type === "category" + (col: any) => col.inputType === "category" || col.input_type === "category", ); console.log("✅ 카테고리 컬럼:", { @@ -90,7 +84,7 @@ export function CategoryColumnList({ columnName: col.columnName || col.column_name, columnLabel: col.columnLabel || col.column_label || col.displayName || col.columnName || col.column_name, inputType: col.inputType || col.input_type, - })) + })), ); // 첫 번째 컬럼 자동 선택 @@ -111,7 +105,7 @@ export function CategoryColumnList({ if (isLoading) { return (
- +
); } @@ -120,14 +114,11 @@ export function CategoryColumnList({ return (

카테고리 컬럼

-
- -

- 카테고리 타입 컬럼이 없습니다 -

-

- 테이블 타입 관리에서 컬럼의 입력 타입을 '카테고리'로 - 설정하세요 +

+ +

카테고리 타입 컬럼이 없습니다

+

+ 테이블 타입 관리에서 컬럼의 입력 타입을 '카테고리'로 설정하세요

@@ -138,42 +129,25 @@ export function CategoryColumnList({

카테고리 컬럼

-

- 관리할 카테고리 컬럼을 선택하세요 -

+

관리할 카테고리 컬럼을 선택하세요

{columns.map((column) => (
- onColumnSelect( - column.columnName, - column.columnLabel || column.columnName - ) - } + onClick={() => onColumnSelect(column.columnName, column.columnLabel || column.columnName)} className={`cursor-pointer rounded-lg border p-4 transition-all ${ - selectedColumn === column.columnName - ? "border-primary bg-primary/10 shadow-sm" - : "hover:bg-muted/50" + selectedColumn === column.columnName ? "border-primary bg-primary/10 shadow-sm" : "hover:bg-muted/50" }`} >
-

- {column.columnLabel || column.columnName} -

-

- {column.columnName} -

+

{column.columnLabel || column.columnName}

+

{column.columnName}

@@ -182,4 +156,3 @@ export function CategoryColumnList({
); } -