"use client"; import { useState, useEffect } from "react"; import { UserSession } from "../../lib/types"; interface UserItem { id: string; email: string; role: string; } interface UserManagementProps { session: UserSession; } export default function UserManagement({ session }: UserManagementProps) { const [users, setUsers] = useState([]); const [email, setEmail] = useState(""); const [role, setRole] = useState("user"); const [msg, setMsg] = useState(""); useEffect(() => { fetch("/api/dashboard/users") .then((r) => r.json()) .then((data) => setUsers(data.users)); }, []); async function inviteUser() { const res = await fetch("/api/dashboard/users", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, role }), }); if (res.ok) setMsg("User invited."); else setMsg("Failed."); } if (session.user.role !== "ADMIN") return null; return (

User Management

setEmail(e.target.value)} />
{msg}
    {users.map((u) => (
  • {u.email}{" "} {u.role}
  • ))}
); }