'use client'; import { useTransition } from 'react'; import Link from 'next/link'; import { Edit, Loader } from 'lucide-react'; import { useUpdateSearchParams } from '@documenso/lib/client-only/hooks/use-update-search-params'; import { Role } from '@documenso/prisma/client'; import { Button } from '@documenso/ui/primitives/button'; import { DataTable } from '@documenso/ui/primitives/data-table'; import { DataTablePagination } from '@documenso/ui/primitives/data-table-pagination'; interface User { id: number; name: string | null; email: string; roles: Role[]; Subscription: Subscription[]; Document: Document[]; } interface Subscription { id: number; status: string; planId: string | null; priceId: string | null; createdAt: Date | null; periodEnd: Date | null; } type UsersDataTableProps = { users: User[]; perPage: number; page: number; totalPages: number; }; type Document = { id: number; }; export const UsersDataTable = ({ users, perPage, page, totalPages }: UsersDataTableProps) => { const [isPending, startTransition] = useTransition(); const updateSearchParams = useUpdateSearchParams(); const onPaginationChange = (page: number, perPage: number) => { startTransition(() => { updateSearchParams({ page, perPage, }); }); }; return (