"use client"; import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; export interface PaginationProps { /** 当前页码(从 1 开始) */ page: number; /** 每页条数 */ pageSize: number; /** 总条数 */ total: number; /** 页码或每页条数变化时的回调 */ onChange: (page: number, pageSize: number) => void; /** 可选的每页条数选项,默认 [10, 20, 50] */ pageSizeOptions?: number[]; /** 是否显示每页条数选择器,默认 true */ showPageSizeSelector?: boolean; } export function Pagination({ page, pageSize, total, onChange, pageSizeOptions = [10, 20, 50], showPageSizeSelector = true, }: PaginationProps) { const totalPages = Math.ceil(total / pageSize); const start = total > 0 ? (page - 1) * pageSize + 1 : 0; const end = Math.min(page * pageSize, total); return (