import { Button, Container, Grid, Group, Pagination, Title } from "@mantine/core"; import { useDocumentTitle } from "@mantine/hooks"; import { Paragraph } from "@prisma/client"; import { IconArrowBack } from "@tabler/icons"; import { useRouter } from "next/router"; import { ReactNode, useEffect, useState } from "react"; import { ParagraphCard } from "../ParagraphCard/ParagraphCard"; interface ListProps { paragraphs: Omit[]; skip: number; take: number; total: number; title: string; titleAction?: ReactNode; } export default function ParagraphGrid({ title, paragraphs, skip, take, total, titleAction, }: ListProps) { useDocumentTitle(title); const router = useRouter(); const [totalPage, setTotalPage] = useState(1); const [page, setPage] = useState(1); useEffect(() => { setTotalPage(Math.ceil(total / take)); setPage(skip / take + 1); }, [skip, take]); function toPage(page: number) { router.push(router.pathname + `?skip=${(page - 1) * take}&take=${take}`); } return ( {title} Page {page} {titleAction} {paragraphs.map((paragraph) => { return ( ); })} ); }