대시보드 이동방식 변경

This commit is contained in:
dohyeons 2025-10-14 17:25:07 +09:00
parent dae3f2d4a8
commit ea97ffcade
2 changed files with 10 additions and 10 deletions

View File

@ -1,6 +1,7 @@
"use client";
import React, { useState, useEffect, use } from "react";
import { useRouter } from "next/navigation";
import { DashboardViewer } from "@/components/dashboard/DashboardViewer";
import { DashboardElement } from "@/components/admin/dashboard/types";
@ -17,6 +18,7 @@ interface DashboardViewPageProps {
* -
*/
export default function DashboardViewPage({ params }: DashboardViewPageProps) {
const router = useRouter();
const resolvedParams = use(params);
const [dashboard, setDashboard] = useState<{
id: string;
@ -135,7 +137,7 @@ export default function DashboardViewPage({ params }: DashboardViewPageProps) {
{/* 편집 버튼 */}
<button
onClick={() => {
window.open(`/admin/dashboard?load=${resolvedParams.dashboardId}`, "_blank");
router.push(`/admin/dashboard?load=${resolvedParams.dashboardId}`);
}}
className="rounded-lg bg-blue-500 px-4 py-2 text-white hover:bg-blue-600"
>

View File

@ -1,6 +1,7 @@
"use client";
import React, { useState, useRef, useCallback } from "react";
import { useRouter } from "next/navigation";
import { DashboardCanvas } from "./DashboardCanvas";
import { DashboardSidebar } from "./DashboardSidebar";
import { DashboardToolbar } from "./DashboardToolbar";
@ -16,6 +17,7 @@ import { GRID_CONFIG } from "./gridUtils";
* - /
*/
export default function DashboardDesigner() {
const router = useRouter();
const [elements, setElements] = useState<DashboardElement[]>([]);
const [selectedElement, setSelectedElement] = useState<string | null>(null);
const [elementCounter, setElementCounter] = useState(0);
@ -181,15 +183,14 @@ export default function DashboardDesigner() {
if (dashboardId) {
// 기존 대시보드 업데이트
// console.log('🔄 대시보드 업데이트:', dashboardId);
savedDashboard = await dashboardApi.updateDashboard(dashboardId, {
elements: elementsData,
});
alert(`대시보드 "${savedDashboard.title}"이 업데이트되었습니다!`);
// 뷰어 페이지 이동
window.location.href = `/dashboard/${savedDashboard.id}`;
// Next.js 라우터로 뷰어 페이지 이동
router.push(`/dashboard/${savedDashboard.id}`);
} else {
// 새 대시보드 생성
const title = prompt("대시보드 제목을 입력하세요:", "새 대시보드");
@ -206,20 +207,17 @@ export default function DashboardDesigner() {
savedDashboard = await dashboardApi.createDashboard(dashboardData);
// console.log('✅ 대시보드 생성 완료:', savedDashboard);
const viewDashboard = confirm(`대시보드 "${title}"이 저장되었습니다!\n\n지금 확인해보시겠습니까?`);
if (viewDashboard) {
window.location.href = `/dashboard/${savedDashboard.id}`;
// Next.js 라우터로 뷰어 페이지 이동
router.push(`/dashboard/${savedDashboard.id}`);
}
}
} catch (error) {
// console.error('❌ 저장 오류:', error);
const errorMessage = error instanceof Error ? error.message : "알 수 없는 오류";
alert(`대시보드 저장 중 오류가 발생했습니다.\n\n오류: ${errorMessage}\n\n관리자에게 문의하세요.`);
}
}, [elements, dashboardId]);
}, [elements, dashboardId, router]);
// 로딩 중이면 로딩 화면 표시
if (isLoading) {