Skip to main content
Glama
data-table-pagination.tsx3.14 kB
"use client" import { Button } from "@repo/ui/components/ui/button" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@repo/ui/components/ui/select" import { Table } from "@tanstack/react-table" import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, } from "lucide-react" interface DataTablePaginationProps<TData> { table: Table<TData> total: number page: number limit: number onPageChange: (page: number) => void } export function DataTablePagination<TData>({ table, total, page, limit, onPageChange, }: DataTablePaginationProps<TData>) { const totalPages = Math.ceil(total / limit) return ( <div className="flex items-center justify-between px-2"> <div className="flex-1 text-sm text-muted-foreground"> 共 {total} 条记录 </div> <div className="flex items-center space-x-6 lg:space-x-8"> <div className="flex items-center space-x-2"> <p className="text-sm font-medium">每页</p> <Select value={`${limit}`} onValueChange={(value) => { table.setPageSize(Number(value)) }} > <SelectTrigger className="h-8 w-[70px]"> <SelectValue placeholder={limit} /> </SelectTrigger> <SelectContent side="top"> {[10, 20, 30, 40, 50].map((pageSize) => ( <SelectItem key={pageSize} value={`${pageSize}`}> {pageSize} </SelectItem> ))} </SelectContent> </Select> </div> <div className="flex w-[100px] items-center justify-center text-sm font-medium text-nowrap"> 第 {page} 页 / 共 {totalPages} 页 </div> <div className="flex items-center space-x-2"> <Button variant="outline" className="hidden h-8 w-8 p-0 lg:flex" onClick={() => onPageChange(1)} disabled={page <= 1} > <span className="sr-only">第一页</span> <ChevronsLeft className="h-4 w-4" /> </Button> <Button variant="outline" className="h-8 w-8 p-0" onClick={() => onPageChange(page - 1)} disabled={page <= 1} > <span className="sr-only">上一页</span> <ChevronLeft className="h-4 w-4" /> </Button> <Button variant="outline" className="h-8 w-8 p-0" onClick={() => onPageChange(page + 1)} disabled={page >= totalPages} > <span className="sr-only">下一页</span> <ChevronRight className="h-4 w-4" /> </Button> <Button variant="outline" className="hidden h-8 w-8 p-0 lg:flex" onClick={() => onPageChange(totalPages)} disabled={page >= totalPages} > <span className="sr-only">最后一页</span> <ChevronsRight className="h-4 w-4" /> </Button> </div> </div> </div> ) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/metacode0602/open-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server