feat(pop-dashboard): 페이지 기반 구조 전환 및 설정 패널 고도화

구조 변경:
- grid 모드를 독립 displayMode에서 페이지 내부 그리드 레이아웃으로 전환
- DashboardPage 타입 추가 (각 페이지가 독립 그리드 보유)
- migrateConfig()로 기존 grid/useGridLayout 설정 자동 마이그레이션

설정 패널 (PopDashboardConfig):
- 드롭다운 기반 집계 설정 UI 전면 재작성 (+917줄)
- 테이블/컬럼 선택 Combobox, 페이지 관리, 셀 배치 편집기
- fetchTableList() 추가 (테이블 목록 조회)

컴포넌트/모드 개선:
- GridMode: 반응형 자동 열 축소 (MIN_CELL_WIDTH 기준)
- PopDashboardComponent: 페이지 기반 렌더링 로직
- PopDashboardPreview: 페이지 뱃지 표시

기타:
- ComponentEditorPanel: 탭 콘텐츠 스크롤 수정 (min-h-0 추가)
- types.ts: grid를 displayMode에서 제거, DashboardPage 타입 추가

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
SeongHyun Kim
2026-02-10 14:22:30 +09:00
parent 73e3d56381
commit dc523d86c3
8 changed files with 1197 additions and 225 deletions

View File

@@ -12,8 +12,14 @@
import { dashboardApi } from "@/lib/api/dashboard";
import { dataApi } from "@/lib/api/data";
import { tableManagementApi } from "@/lib/api/tableManagement";
import type { TableInfo } from "@/lib/api/tableManagement";
import type { DataSourceConfig, DataSourceFilter } from "../../types";
// ===== 타입 re-export =====
export type { TableInfo };
// ===== 반환 타입 =====
export interface AggregatedResult {
@@ -233,3 +239,21 @@ export async function fetchTableColumns(
return [];
}
}
/**
* 테이블 목록 조회 (설정 패널 Combobox용)
* tableManagementApi.getTableList() 래핑
*
* @INFRA-EXTRACT: useDataSource 완성 후 교체 예정
*/
export async function fetchTableList(): Promise<TableInfo[]> {
try {
const response = await tableManagementApi.getTableList();
if (response.success && response.data) {
return response.data;
}
return [];
} catch {
return [];
}
}