'use client';
import { useState, useMemo } from "react";
import AdminSidebar from "@/app/components/AdminSidebar";
import ChevronDownSvg from "@/app/svgs/chevrondownsvg";
export default function AdminLessonsPage() {
// TODO: 나중에 실제 데이터로 교체
const items: any[] = [];
const [currentPage, setCurrentPage] = useState(1);
const totalCount = useMemo(() => items.length, [items]);
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 (맨 뒤로) */}
);
})()}
>
)}
);
}