mirror of
https://github.com/i701/sarlink-portal.git
synced 2025-04-20 13:46:53 +00:00
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 1m15s
211 lines
5.2 KiB
TypeScript
211 lines
5.2 KiB
TypeScript
// import {
|
|
// Table,
|
|
// TableBody,
|
|
// TableCaption,
|
|
// TableCell,
|
|
// TableFooter,
|
|
// TableHead,
|
|
// TableHeader,
|
|
// TableRow,
|
|
// } from "@/components/ui/table";
|
|
// 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 || "";
|
|
console.log(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 null;
|
|
// return (
|
|
// <div>
|
|
// {users.length === 0 ? (
|
|
// <div className="h-[calc(100svh-400px)] flex flex-col items-center justify-center my-4">
|
|
// <h3>No Users yet.</h3>
|
|
// </div>
|
|
// ) : (
|
|
// <>
|
|
// <Table className="overflow-scroll">
|
|
// <TableCaption>Table of all users.</TableCaption>
|
|
// <TableHeader>
|
|
// <TableRow>
|
|
// <TableHead>Name</TableHead>
|
|
// <TableHead>ID Card</TableHead>
|
|
// <TableHead>Atoll</TableHead>
|
|
// <TableHead>Island</TableHead>
|
|
// <TableHead>House Name</TableHead>
|
|
// <TableHead>Status</TableHead>
|
|
// <TableHead>Dob</TableHead>
|
|
// <TableHead>Phone Number</TableHead>
|
|
// <TableHead>Action</TableHead>
|
|
// </TableRow>
|
|
// </TableHeader>
|
|
// <TableBody className="overflow-scroll">
|
|
// {users.map((user) => (
|
|
// <TableRow
|
|
// className={`${user.verified && "title-bg dark:bg-black"}`}
|
|
// key={user.id}
|
|
// >
|
|
// <TableCell className="font-medium">{user.name}</TableCell>
|
|
// <TableCell className="font-medium">{user.id_card}</TableCell>
|
|
// <TableCell>{user.atoll?.name}</TableCell>
|
|
// <TableCell>{user.island?.name}</TableCell>
|
|
// <TableCell>{user.address}</TableCell>
|
|
|
|
// <TableCell>
|
|
// {user.verified ? (
|
|
// <Badge
|
|
// variant="outline"
|
|
// className="bg-lime-100 text-black"
|
|
// >
|
|
// Verified
|
|
// </Badge>
|
|
// ) : (
|
|
// <Badge
|
|
// variant="outline"
|
|
// className="bg-yellow-100 text-black"
|
|
// >
|
|
// Unverified
|
|
// </Badge>
|
|
// )}
|
|
// </TableCell>
|
|
// <TableCell>
|
|
// {new Date(user.dob ?? "").toLocaleDateString("en-US", {
|
|
// month: "short",
|
|
// day: "2-digit",
|
|
// year: "numeric",
|
|
// })}
|
|
// </TableCell>
|
|
|
|
// <TableCell>{user.phoneNumber}</TableCell>
|
|
// <TableCell>
|
|
// <Link href={`/users/${user.id}/verify`}>
|
|
// <Button>Details</Button>
|
|
// </Link>
|
|
// </TableCell>
|
|
// </TableRow>
|
|
// ))}
|
|
// </TableBody>
|
|
// <TableFooter>
|
|
// <TableRow>
|
|
// <TableCell colSpan={8}>
|
|
// {query.length > 0 && (
|
|
// <p className="text-sm text-muted-foreground">
|
|
// Showing {users.length} locations for "{query}
|
|
// "
|
|
// </p>
|
|
// )}
|
|
// </TableCell>
|
|
// <TableCell className="text-muted-foreground">
|
|
// {totalUsers} users
|
|
// </TableCell>
|
|
// </TableRow>
|
|
// </TableFooter>
|
|
// </Table>
|
|
// <Pagination totalPages={totalPages} currentPage={page} />
|
|
// </>
|
|
// )}
|
|
// </div>
|
|
// );
|
|
}
|