'use client'; import { useState, useMemo } from "react"; import AdminSidebar from "@/app/components/AdminSidebar"; import ChevronDownSvg from "@/app/svgs/chevrondownsvg"; export default function AdminLogsPage() { // TODO: 나중에 실제 데이터로 교체 const items: any[] = []; const [currentPage, setCurrentPage] = useState(1); const ITEMS_PER_PAGE = 10; const totalPages = Math.ceil(items.length / ITEMS_PER_PAGE); const paginatedItems = useMemo(() => { const startIndex = (currentPage - 1) * ITEMS_PER_PAGE; const endIndex = startIndex + ITEMS_PER_PAGE; return items.slice(startIndex, endIndex); }, [items, currentPage]); return (
{/* 메인 레이아웃 */}
{/* 사이드바 */}
{/* 메인 콘텐츠 */}
{/* 제목 영역 */}

로그/접속 기록

{/* 콘텐츠 영역 */}
{items.length === 0 ? (

현재 관리할 수 있는 항목이 없습니다.

) : ( <> {/* TODO: 테이블 또는 리스트를 여기에 추가 */} {/* 페이지네이션 - 10개 초과일 때만 표시 */} {items.length > ITEMS_PER_PAGE && (() => { // 페이지 번호를 10단위로 표시 const pageGroup = Math.floor((currentPage - 1) / 10); const startPage = pageGroup * 10 + 1; const endPage = Math.min(startPage + 9, totalPages); const visiblePages = Array.from({ length: endPage - startPage + 1 }, (_, i) => startPage + i); return (
{/* First (맨 앞으로) */} {/* Prev */} {/* Numbers */} {visiblePages.map((n) => { const active = n === currentPage; return ( ); })} {/* Next */} {/* Last (맨 뒤로) */}
); })()} )}
); }