diff --git a/src/app/(main)/m/dashboard/page.tsx b/src/app/(main)/m/dashboard/page.tsx index f6a5794..9b93025 100644 --- a/src/app/(main)/m/dashboard/page.tsx +++ b/src/app/(main)/m/dashboard/page.tsx @@ -2,6 +2,7 @@ import { useEffect, useState } from "react"; import Link from "next/link"; +import { useRouter } from "next/navigation"; import { ShoppingCart, Package, ClipboardList, TrendingUp, AlertTriangle, ArrowRight } from "lucide-react"; type DashboardData = @@ -29,19 +30,25 @@ const STATUS_COLOR: Record = { }; export default function MomoDashboard() { - const [role, setRole] = useState<"USER" | "ADMIN">("USER"); + const router = useRouter(); + const [role, setRole] = useState<"USER" | "ADMIN" | null>(null); const [data, setData] = useState(null); useEffect(() => { fetch("/api/auth/me").then((r) => r.json()).then((d) => { const u = d?.user; const isAdmin = u?.role === "ADMIN" || u?.isAdmin === true || u?.userType === "A"; - setRole(isAdmin ? "ADMIN" : "USER"); + if (!isAdmin) { + // 일반 구매자는 대시보드 대상이 아님 → 출고 요청 화면으로 즉시 이동 + router.replace("/m/orders/new"); + return; + } + setRole("ADMIN"); + fetch("/api/m/dashboard").then((r) => r.json()).then(setData); }); - fetch("/api/m/dashboard").then((r) => r.json()).then(setData); - }, []); + }, [router]); - if (!data) return
불러오는 중...
; + if (role !== "ADMIN" || !data) return
불러오는 중...
; if (role === "USER") { const d = data as Extract;