"use client"; import { ChevronLeft, ChevronRight } from "lucide-react"; export function Pagination({ page, pageSize, total, label = "分页", onPageChange }: { page: number; pageSize: number; total: number; label?: string; onPageChange: (page: number) => void; }) { const totalPages = pageCount(total, pageSize); if (totalPages <= 1) return null; const current = clampPage(page, total, pageSize); return ( ); } export function clampPage(page: number, total: number, pageSize: number) { return Math.min(Math.max(1, page), pageCount(total, pageSize)); } export function pageItems(items: T[], page: number, pageSize: number) { const current = clampPage(page, items.length, pageSize); return items.slice((current - 1) * pageSize, current * pageSize); } function pageCount(total: number, pageSize: number) { return Math.max(1, Math.ceil(total / pageSize)); }