+++
title = "Implement pagination component — prev/next buttons, current page indicator, total pages"
priority = 5
status = "todo"
ticket_type = "task"
dependencies = ["93515e", "0fbdd5"]
+++
The `quotesdb` UI is a Yew (Rust → Wasm) single-page app compiled by Trunk and hosted on Cloudflare Pages. It communicates with the backend API via `fetch` calls. Source lives in `src/bin/ui/`. Run with `trunk serve` for local development.
Implement a shared `Pagination` Yew component (`src/bin/ui/components/pagination.rs`) that renders:
- A "Previous" button (disabled on page 1)
- Current page indicator (e.g. "Page 2 of 5")
- A "Next" button (disabled on the last page)
The component accepts `page`, `total_pages`, and an `on_page_change: Callback` prop.
- Resolve TRIAGE ticket 5e3e37 (CSS/styling approach) before adding class names.
- Do not navigate programmatically — call `on_page_change` and let the parent update the URL or state.
- Render nothing (or a disabled shell) if `total_pages <= 1`.
From the `quotesdb/` directory:
```sh
trunk build
```
`feat(quotesdb): implement shared Pagination component`