+
+
{messages.userManagement}
+
+
+
+
+ );
+}
diff --git a/frontend/src/app/[locale]/admin/UsersTable.tsx b/frontend/src/app/[locale]/admin/UsersTable.tsx
new file mode 100644
index 0000000..997e7a2
--- /dev/null
+++ b/frontend/src/app/[locale]/admin/UsersTable.tsx
@@ -0,0 +1,110 @@
+import { useState, useMemo, useCallback } from 'react';
+import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, SortDescriptor } from '@nextui-org/react';
+import { UserType, AdminMessages } from '@/types/user';
+import { roles } from '@/config/selection';
+import Avatar from 'boring-avatars';
+
+type Props = {
+ users: UserType[];
+ messages: AdminMessages;
+ locale: string;
+};
+
+export default function UsersTable({ users, messages, locale }: Props) {
+ const headerColumns = [
+ { name: messages.avatar, uid: 'avatar', sortable: false },
+ { name: messages.id, uid: 'id', sortable: true },
+ { name: messages.email, uid: 'email', sortable: true },
+ { name: messages.username, uid: 'username', sortable: true },
+ { name: messages.role, uid: 'role', sortable: true },
+ ];
+
+ const [sortDescriptor, setSortDescriptor] = useState