10.2 게시판 스키마/설정 관리 UI

This commit is contained in:
koreacomp5
2025-10-09 18:18:13 +09:00
parent 0f375bdd67
commit fee16e68f2
3 changed files with 48 additions and 1 deletions

32
src/app/admin/page.tsx Normal file
View File

@@ -0,0 +1,32 @@
"use client";
import useSWR from "swr";
const fetcher = (url: string) => fetch(url).then((r) => r.json());
export default function AdminDashboardPage() {
const { data } = useSWR<{ users: number; posts: number; comments: number; reportsOpen: number; pendingReviews: number }>("/api/admin/dashboard", fetcher);
const m = data ?? { users: 0, posts: 0, comments: 0, reportsOpen: 0, pendingReviews: 0 };
return (
<div>
<h1> </h1>
<div style={{ display: "grid", gridTemplateColumns: "repeat(5, minmax(0,1fr))", gap: 12 }}>
<Card label="사용자" value={m.users} />
<Card label="게시글" value={m.posts} />
<Card label="댓글" value={m.comments} />
<Card label="열린 신고" value={m.reportsOpen} />
<Card label="승인 대기 글" value={m.pendingReviews} />
</div>
</div>
);
}
function Card({ label, value }: { label: string; value: number }) {
return (
<div style={{ border: "1px solid #eee", borderRadius: 8, padding: 16 }}>
<div style={{ fontSize: 12, opacity: 0.7 }}>{label}</div>
<div style={{ fontSize: 24, fontWeight: 700 }}>{value}</div>
</div>
);
}