From f71150667133c12b3bd6466d3448f50bcc5870ad Mon Sep 17 00:00:00 2001 From: DDD1542 Date: Sun, 15 Mar 2026 17:10:04 +0900 Subject: [PATCH] [agent-pipeline] pipe-20260315080636-1tpd round-1 --- .../admin/screenMng/screenMngList/page.tsx | 52 ++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/frontend/app/(main)/admin/screenMng/screenMngList/page.tsx b/frontend/app/(main)/admin/screenMng/screenMngList/page.tsx index e367e242..862ded32 100644 --- a/frontend/app/(main)/admin/screenMng/screenMngList/page.tsx +++ b/frontend/app/(main)/admin/screenMng/screenMngList/page.tsx @@ -1,10 +1,10 @@ "use client"; -import { useState, useEffect, useCallback } from "react"; +import { useState, useEffect, useCallback, useMemo } from "react"; import { useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; -import { ArrowLeft, Plus, RefreshCw, Search, LayoutGrid, LayoutList, TestTube2 } from "lucide-react"; +import { ArrowLeft, Plus, RefreshCw, Search, LayoutGrid, LayoutList, TestTube2, ChevronRight, Monitor, Database, FolderOpen } from "lucide-react"; import ScreenList from "@/components/screen/ScreenList"; import ScreenDesigner from "@/components/screen/ScreenDesigner"; import TemplateManager from "@/components/screen/TemplateManager"; @@ -15,6 +15,7 @@ import { ScrollToTop } from "@/components/common/ScrollToTop"; import { ScreenDefinition } from "@/types/screen"; import { screenApi } from "@/lib/api/screen"; import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"; +import { Badge } from "@/components/ui/badge"; import CreateScreenModal from "@/components/screen/CreateScreenModal"; // 단계별 진행을 위한 타입 정의 @@ -34,6 +35,8 @@ export default function ScreenManagementPage() { const [searchTerm, setSearchTerm] = useState(""); const [isCreateOpen, setIsCreateOpen] = useState(false); + const tableCount = useMemo(() => new Set(screens.map((s) => s.tableName).filter(Boolean)).size, [screens]); + // 화면 목록 로드 const loadScreens = useCallback(async () => { try { @@ -200,6 +203,33 @@ export default function ScreenManagementPage() {
+ {/* 통계 요약 바 */} +
+
+ + 화면 + {screens.length} +
+
+
+ + 테이블 + {tableCount} +
+ {(selectedGroup || selectedScreen) && ( +
+ 현재: + {selectedGroup && {selectedGroup.name}} + {selectedScreen && ( + <> + + {selectedScreen.screenName} + + )} +
+ )} +
+ {/* 메인 콘텐츠 */} {viewMode === "tree" ? (
@@ -246,6 +276,24 @@ export default function ScreenManagementPage() { }} />
+ {/* 선택 미리보기 */} + {selectedScreen && ( +
+
+ + {selectedScreen.screenName} +
+
+ {selectedScreen.screenCode} + {selectedScreen.tableName || "테이블 없음"} +
+
+ +
+
+ )}
{/* 오른쪽: 관계 시각화 (React Flow) */}