import { Eye, Pencil } from "lucide-react" import Link from "next/link" import PageHeader from "@/components/common/pageheader" import PaginationButtons from "@/components/common/pagination" import { Button } from "@/components/ui/button" import type { Person } from "@/generated/prisma/client" import { getI18n } from "@/i18n/server" import { PersonService } from "@/services/person.service" import { formatPersonDepartment } from "./_components/person.copy" export default async function PeoplePage(props: { searchParams?: Promise<{ page?: string search?: string }> }) { const searchParams = await props.searchParams const currentPage = searchParams?.page ? parseInt(searchParams.page, 10) : 1 const search = searchParams?.search || "" const { data: people, totalPages } = await PersonService.findAllPaginated({ page: currentPage, pageSize: 10, search, }) const { dictionary } = await getI18n() const copy = dictionary.inventory.people return (
{people.length === 0 &&
{copy.list.empty}
} {people.length > 0 && (
{people.map((person: Person) => ( ))}
{copy.list.columns.name} {copy.list.columns.email} {copy.list.columns.phone} {copy.list.columns.department} {copy.list.columns.actions}
{`${person.firstName} ${person.lastName}`} {person.email} {person.phone} {formatPersonDepartment( person.department, copy.departments, copy.fallback, )}
)}
) }