import Button from "@/components/Low/Button"; import {useMemo, useState} from "react"; import {BiChevronLeft} from "react-icons/bi"; import {BsChevronDoubleLeft, BsChevronDoubleRight, BsChevronLeft, BsChevronRight} from "react-icons/bs"; export default function usePagination(list: T[], size = 25) { const [page, setPage] = useState(0); const items = useMemo(() => list.slice(page * size, (page + 1) * size), [page, size, list]); const render = () => (
{page * size + 1} - {(page + 1) * size > list.length ? list.length : (page + 1) * size} / {list.length}
); const renderMinimal = () => (
{page * size + 1} - {(page + 1) * size > list.length ? list.length : (page + 1) * size} / {list.length}
); return {page, items, setPage, render, renderMinimal}; }