// 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"; import Link from "next/link"; import { redirect } from "next/navigation"; import { getUsers } from "@/queries/users"; import { tryCatch } from "@/utils/tryCatch"; import ClientErrorMessage from "./client-error-message"; import Pagination from "./pagination"; import { Badge } from "./ui/badge"; import { Button } from "./ui/button"; import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from "./ui/table"; export async function UsersTable({ searchParams, }: { searchParams: Promise<{ [key: string]: unknown; }>; }) { const resolvedParams = await searchParams; const page = Number.parseInt(resolvedParams.page as string) || 1; const limit = 10; const offset = (page - 1) * limit; const apiParams: Record = {}; for (const [key, value] of Object.entries(resolvedParams)) { if (value !== undefined && value !== "") { apiParams[key] = typeof value === "number" ? value : String(value); } } apiParams.limit = limit; apiParams.offset = offset; const [error, users] = await tryCatch(getUsers(apiParams)); if (error) { if (error.message === "UNAUTHORIZED") { redirect("/auth/signin"); } return ; } const { meta, data } = users; // return null; return (
{users?.data.length === 0 ? (

No Users yet.

) : ( <> Table of all users. Name ID Card Atoll Island House Name Status Dob Phone Number Action {data.map((user) => ( {user.first_name} {user.last_name} {user.id_card} {user.atoll?.name} {user.island?.name} {user.address} {user.verified ? ( Verified ) : ( Unverified )} {new Date(user.dob ?? "").toLocaleDateString("en-US", { month: "short", day: "2-digit", year: "numeric", })} {user.mobile} ))} {meta?.total === 1 ? (

Total {meta?.total} user.

) : (

Total {meta?.total} users.

)}
)}
); }