Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Create Pagination component

未关闭
#23 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
52/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
冷清
技术栈
react, typescript
领域
frontend, web-dev

调研方向

首先定位现有的 Table 组件以及 issue 中建议的 components/table 结构,然后查阅 Figma 参考和 Material UI table-pagination 文档。实现可复用的分页 UI,并将其连接到表格的可见行,包括下一页/上一页控件和显示范围。验收标准全部通过后即视为完成,其中包括响应式行为以及与现有 Table 组件的整洁集成。

由索引模型根据 Issue 内容生成。

描述

Beginner California Tribal GIS Hackathon
Issue created with ChatGPT models' help¹

Description

Create a reusable Pagination component for the conservation projects table so users can navigate between multiple pages conservation project rows dynamically¹. The component should support standard pagination behavior including next page, previous page, current page display, and configurable rows-per-page functionality².

This issue mainly focuses on implementing the frontend pagination UI, pagination state management, reusable component structure, and integration with the existing Table component³. The Pagination component should remain modular enough to support future backend/API-driven pagination workflows⁴.

Pagination icon specs and additional UI details should be obtained from the Figma design file¹.

Image

Goals

  • Create reusable Pagination component for conservation projects table¹
  • Support next/previous page navigation²
  • Display current page range and page count³
  • Support configurable rows per page (optional/stretch goal)⁴
  • Keep pagination component modular and reusable¹
  • Support integration with filtering and future API pagination²
  • Please make pagination responsive and usable on smaller screens³

Implementation Instructions

  • Create reusable Pagination.tsx, TablePagination.tsx, or similar component under components folder¹
  • Use React + TypeScript + Material UI²
  • Add forward and backward pagination controls³
  • Display current visible rows count (example: 1 - 10 of 100)⁴
  • Integrate pagination state with existing Table component¹
  • Support configurable rows-per-page options like 10, 50, 100 functionality² (optional)
  • Contributors may use useState, useMemo, or parent-managed state³
  • Clicking forward icon should navigate to next page⁴
  • Clicking backward icon should navigate to previous page¹
  • Stretch goal: clicking page numbers directly navigates to selected page²
  • Keep implementation modular for future backend/API pagination integration³
  • Use TypeScript types from types folder if available⁴
  • Use MUI icons/components wherever possible¹
  • Please ask maintainers for Figma access and use exact design details from the Figma file²
  • Please make pagination responsive as much as possible for smaller screens³

Expected Functionalities

Pagination Navigation
  • User clicks forward icon⁴
  • Table navigates to next page¹
  • User clicks backward icon²
  • Table navigates to previous page³
Page Information
  • Current visible row range is displayed⁴
  • Example: 1 - 10 of 100¹
  • Table updates visible rows correctly²
Optional Rows Per Page
  • User may optionally select rows-per-page value³
  • Example values: 10, 50, 100⁴
  • Table updates visible rows dynamically¹
Optional Direct Page Navigation
  • User clicks page number²
  • Table navigates directly to selected page³

Figma Layout Specs

footer
  • width: 1114;¹
  • height: 58;²
  • gap: 32px;³
  • angle: 0 deg;⁴
  • opacity: 1;¹
  • padding-right: 8px;²
  • padding-left: 8px;³

pagination text
  • width: 47;⁴
  • height: 14;¹
  • angle: 0 deg;²
  • opacity: 1;³
  • 1 - 2 of 2;⁴
  • font-family: font family/body;¹
  • font-weight: 400;²
  • font-style: Regular;³
  • font-size: size/Body XS;⁴
  • line-height: 100%;¹
  • letter-spacing: 0px;²
  • text-align: right;³
  • vertical-align: middle;⁴
  • background: #000000DE;¹

forward button
  • type="plain";²
  • color="normal";³
  • disabled="no";⁴
  • size="x-small";¹
  • width: 32;²
  • height: 32;³
  • angle: 0 deg;⁴
  • opacity: 1;¹
  • padding-right: 16px;²
  • padding-left: 16px;³
  • border-radius: 32px;⁴

(similar for back page icon)¹


Suggested Technical Structure (Optional)

Possible component structure:¹

components/table/
 ├── Table.tsx
 ├── Pagination.tsx
 ├── PaginationControls.tsx
 ├── PageIndicator.tsx
 └── RowsPerPageSelector.tsx

Possible pagination state structure:²

paginationState/
 ├── currentPage
 ├── rowsPerPage
 ├── totalRows
 ├── totalPages
 └── visibleRows

Notes

  • Contributors may use MUI Pagination components or custom pagination logic³
  • Keep pagination logic reusable for future backend/API integration⁴
  • Avoid tightly coupling pagination logic directly inside UI rendering¹
  • Future server-side pagination may replace local pagination later²
  • Pagination icon styling/details should follow Figma specifications³
  • Rows-per-page selector and direct page navigation are optional/stretch goals⁴

Acceptance Criteria

  • Pagination component renders correctly¹
  • Forward button navigates to next page²
  • Backward button navigates to previous page³
  • Current visible row count displays correctly⁴
  • Table rows update correctly after pagination changes¹
  • Component uses React + TypeScript + MUI²
  • Code structure is modular and reusable³
  • Component integrates cleanly with existing Table component⁴
  • Pagination interactions remain usable on smaller screens¹

Resources

¹ Material UI Pagination Documentation
² React State Documentation
³ React Rendering Lists Documentation
⁴ Material UI Table Pagination Documentation

Reference Figma Design:
https://www.figma.com/proto/e9z8edludVssFYABGEWsoI/OpenNature-Map--Hackathons-?node[…]g=fixed&starting-point-node-id=1%3A896&page-id=0%3A1&hide-ui=1

主要语言
HTML
星标
2
派生
11
PR 合并指标
30 天内没有已合并 PR

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenSourceFellows/map_dashboard_hackathon 的其他 Issue

查看 OpenSourceFellows/map_dashboard_hackathon 的全部 Issue

相似的 Issue

更多 Web Dev Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。