"use client"; import { useState, useEffect } from "react"; import { getSession } from "../../../lib/auth/session"; import { redirect } from "next/navigation"; interface User { id: string; email: string; firstName: string; lastName: string; role: string; createdAt: string; } export default function AdminUsersPage() { const [users, setUsers] = useState([]); const [loading, setLoading] = useState(true); const [searchQuery, setSearchQuery] = useState(""); useEffect(() => { fetchUsers(); }, []); const fetchUsers = async () => { try { const response = await fetch("/api/admin/users"); if (response.ok) { const data = await response.json(); setUsers(data.users || []); } } catch (error) { console.error("Failed to fetch users:", error); } finally { setLoading(false); } }; const filteredUsers = users.filter( (user) => user.email.toLowerCase().includes(searchQuery.toLowerCase()) || `${user.firstName} ${user.lastName}`.toLowerCase().includes(searchQuery.toLowerCase()) ); return (

Users Management

Manage user accounts and permissions

setSearchQuery(e.target.value)} />
{loading ? (

Loading users...

) : (
{filteredUsers.length === 0 ? ( ) : ( filteredUsers.map((user) => ( )) )}
User Email Role Joined
No users found
{user.firstName} {user.lastName}
{user.email} {user.role} {new Date(user.createdAt).toLocaleDateString()}
)}
); }