diff options
Diffstat (limited to 'services/nuldoc/nuldoc-src/components/Pagination.ts')
| -rw-r--r-- | services/nuldoc/nuldoc-src/components/Pagination.ts | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/services/nuldoc/nuldoc-src/components/Pagination.ts b/services/nuldoc/nuldoc-src/components/Pagination.ts index 62e796b..d920316 100644 --- a/services/nuldoc/nuldoc-src/components/Pagination.ts +++ b/services/nuldoc/nuldoc-src/components/Pagination.ts @@ -1,4 +1,4 @@ -import { elem, Element } from "../dom.ts"; +import { a, div, Element, nav, span } from "../dom.ts"; type Props = { currentPage: number; @@ -10,43 +10,38 @@ export default function Pagination( { currentPage, totalPages, basePath }: Props, ): Element { if (totalPages <= 1) { - return elem("div", {}); + return div({}); } const pages = generatePageNumbers(currentPage, totalPages); - return elem( - "nav", + return nav( { class: "pagination" }, - elem( - "div", + div( { class: "pagination-prev" }, currentPage > 1 - ? elem("a", { href: pageUrlAt(basePath, currentPage - 1) }, "前へ") + ? a({ href: pageUrlAt(basePath, currentPage - 1) }, "前へ") : null, ), ...pages.map((page) => { if (page === "...") { - return elem("div", { class: "pagination-elipsis" }, "…"); + return div({ class: "pagination-elipsis" }, "…"); } else if (page === currentPage) { - return elem( - "div", + return div( { class: "pagination-page pagination-page-current" }, - elem("span", {}, String(page)), + span({}, String(page)), ); } else { - return elem( - "div", + return div( { class: "pagination-page" }, - elem("a", { href: pageUrlAt(basePath, page) }, String(page)), + a({ href: pageUrlAt(basePath, page) }, String(page)), ); } }), - elem( - "div", + div( { class: "pagination-next" }, currentPage < totalPages - ? elem("a", { href: pageUrlAt(basePath, currentPage + 1) }, "次へ") + ? a({ href: pageUrlAt(basePath, currentPage + 1) }, "次へ") : null, ), ); |
