diff --git a/apps/hub/app/(app)/admin/user/[id]/page.tsx b/apps/hub/app/(app)/admin/user/[id]/page.tsx
new file mode 100644
index 00000000..19f0a092
--- /dev/null
+++ b/apps/hub/app/(app)/admin/user/[id]/page.tsx
@@ -0,0 +1,22 @@
+import { PrismaClient } from '@repo/db';
+
+export default async ({ params }: { params: Promise<{ id: string }> }) => {
+ const prisma = new PrismaClient();
+ const { id } = await params;
+
+ const user = await prisma.user.findUnique({
+ where: {
+ id: id,
+ },
+ });
+ console.log(user);
+ return (
+
+
+ {user?.firstname} {user?.lastname}
+
+
{user?.email}
+ {/* TODO: Hier Nutzerdaten bearbeiten */}
+
+ );
+};
diff --git a/apps/hub/app/(app)/admin/users/page.tsx b/apps/hub/app/(app)/admin/user/page.tsx
similarity index 87%
rename from apps/hub/app/(app)/admin/users/page.tsx
rename to apps/hub/app/(app)/admin/user/page.tsx
index 14d0a87c..b6a9b4a2 100644
--- a/apps/hub/app/(app)/admin/users/page.tsx
+++ b/apps/hub/app/(app)/admin/user/page.tsx
@@ -1,8 +1,10 @@
+import Link from 'next/link';
import { PaginatedTable } from '../../../_components/PaginatedTable';
export default async () => {
return (
{
header: 'Email',
accessorKey: 'email',
},
- {
- header: 'Role',
- accessorKey: 'role',
- },
]}
/>
);
diff --git a/apps/hub/app/_components/PaginatedTable.tsx b/apps/hub/app/_components/PaginatedTable.tsx
index bc54e3b8..9b23ec4b 100644
--- a/apps/hub/app/_components/PaginatedTable.tsx
+++ b/apps/hub/app/_components/PaginatedTable.tsx
@@ -8,11 +8,13 @@ interface PaginatedTableProps
extends Omit, 'data'> {
prismaModel: keyof PrismaClient;
rowsPerPage?: number;
+ showEditButton?: boolean;
}
export function PaginatedTable({
prismaModel,
rowsPerPage = 10,
+ showEditButton = false,
...restProps
}: PaginatedTableProps) {
const [data, setData] = useState([]);
@@ -30,7 +32,12 @@ export function PaginatedTable({
return (
-
+
{
data: TData[];
columns: ColumnDef[];
+ showEditButton?: boolean;
+ prismaModel?: keyof PrismaClient;
}
export default function SortableTable({
data,
columns,
+ prismaModel,
+ showEditButton,
}: SortableTableProps) {
const [sorting, setSorting] = useState([]);
const table = useReactTable({
data,
- columns,
+ columns: showEditButton
+ ? [
+ ...columns,
+ {
+ header: 'Actions',
+ cell: ({ row }) => (
+
+
+
+
+
+ ),
+ },
+ ]
+ : columns,
getCoreRowModel: getCoreRowModel(),
getSortedRowModel: getSortedRowModel(),
onSortingChange: setSorting,
diff --git a/apps/hub/app/_components/ui/Nav.tsx b/apps/hub/app/_components/ui/Nav.tsx
index 3c74ba35..1e800aad 100644
--- a/apps/hub/app/_components/ui/Nav.tsx
+++ b/apps/hub/app/_components/ui/Nav.tsx
@@ -29,7 +29,7 @@ export const VerticalNav = () => {