import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import prisma from "@/lib/db"; import Link from "next/link"; import Pagination from "./pagination"; import { Badge } from "./ui/badge"; import { Button } from "./ui/button"; export async function UsersTable({ searchParams, }: { searchParams: Promise<{ query: string; page: number; sortBy: string; status: string; }>; }) { const query = (await searchParams)?.query || ""; const page = (await searchParams)?.page; const sortBy = (await searchParams)?.sortBy || "asc"; const verified = (await searchParams)?.status || "all"; const totalUsers = await prisma.user.count({ where: { OR: [ { name: { contains: query || "", mode: "insensitive", }, }, { phoneNumber: { contains: query || "", mode: "insensitive", }, }, { address: { contains: query || "", mode: "insensitive", }, }, { id_card: { contains: query || "", mode: "insensitive", }, }, ], verified: verified === "all" ? undefined : verified === "verified", }, }); const totalPages = Math.ceil(totalUsers / 10); const limit = 10; const offset = (Number(page) - 1) * limit || 0; const users = await prisma.user.findMany({ where: { OR: [ { name: { contains: query || "", mode: "insensitive", }, }, { phoneNumber: { contains: query || "", mode: "insensitive", }, }, { address: { contains: query || "", mode: "insensitive", }, }, { id_card: { contains: query || "", mode: "insensitive", }, }, ], verified: verified === "all" ? undefined : verified === "verified", }, include: { island: true, atoll: true, }, skip: offset, take: limit, orderBy: { id: `${sortBy}` as "asc" | "desc", }, }); // const users = await prisma.user.findMany({ // where: { // role: "USER", // }, // include: { // atoll: true, // island: true, // }, // }); return (