Files
var-monorepo/apps/hub/app/(app)/admin/heliport/page.tsx
2025-12-27 15:33:00 +01:00

74 lines
1.8 KiB
TypeScript

"use client";
import { DatabaseBackupIcon } from "lucide-react";
import { PaginatedTable } from "../../../_components/PaginatedTable";
import Link from "next/link";
import { ColumnDef } from "@tanstack/react-table";
import { Heliport, Prisma } from "@repo/db";
const page = () => {
return (
<>
<PaginatedTable
stickyHeaders
prismaModel="heliport"
getFilter={(searchTerm) =>
({
OR: [
{ siteName: { contains: searchTerm, mode: "insensitive" } },
{ info: { contains: searchTerm, mode: "insensitive" } },
{ hospital: { contains: searchTerm, mode: "insensitive" } },
{ designator: { contains: searchTerm, mode: "insensitive" } },
],
}) as Prisma.HeliportWhereInput
}
showSearch
columns={
[
{
header: "Typ",
accessorKey: "type",
},
{
accessorKey: "designator",
header: "Designator",
},
{
header: "Name",
accessorKey: "siteName",
},
{
header: "Name (21 zeichen)",
accessorKey: "siteNameSub21",
},
{
header: "Aktionen",
cell: ({ row }) => (
<div className="flex items-center gap-1">
<Link href={`/admin/heliport/${row.original.id}`}>
<button className="btn btn-sm">Edit</button>
</Link>
</div>
),
},
] as ColumnDef<Heliport>[]
}
leftOfSearch={
<span className="flex items-center gap-2">
<DatabaseBackupIcon className="h-5 w-5" /> Heliports
</span>
}
rightOfSearch={
<p className="flex items-center justify-between gap-2 text-left text-2xl font-semibold">
<Link href={"/admin/heliport/new"}>
<button className="btn btn-sm btn-outline btn-primary">Erstellen</button>
</Link>
</p>
}
/>
</>
);
};
export default page;