From 6773d6d9bca0bed411136b3157c6166043a38ad7 Mon Sep 17 00:00:00 2001 From: Jakob Moser Date: Thu, 13 Nov 2025 19:48:09 +0100 Subject: [PATCH] Add pagination elements --- .../ui/static/components/pieces/Pagination.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 karaokatalog/ui/static/components/pieces/Pagination.js diff --git a/karaokatalog/ui/static/components/pieces/Pagination.js b/karaokatalog/ui/static/components/pieces/Pagination.js new file mode 100644 index 0000000..492d4bd --- /dev/null +++ b/karaokatalog/ui/static/components/pieces/Pagination.js @@ -0,0 +1,16 @@ +import PaginationControls from "./PaginationControls.js" + +const ELEMENTS_PER_PAGE = 25 + +export default { + view(vnode) { + const elements = vnode.attrs.elements.toArray() + const totalPages = Math.ceil(elements.length / ELEMENTS_PER_PAGE) + + const startIndex = (this.currentPageIndex || 0) * ELEMENTS_PER_PAGE + return [ + elements.slice(startIndex, startIndex + ELEMENTS_PER_PAGE), + m(PaginationControls, { currentPage: (this.currentPageIndex || 0) + 1, totalPages, onPageChange: i => this.currentPageIndex = i - 1 }) + ] + } +}