"use client"; import { useContext, useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; interface AddUserButtonProps { userRole: string[]; handleAddUser: (newUser: any) => void; } export function AddUserButton({ userRole, handleAddUser }: AddUserButtonProps) { const [open, setOpen] = useState(false); const [formData, setFormData] = useState({ username: "", firstName: "", lastName: "", email: "", realmRoles: "", }); const [error, setError] = useState(null); const availableRoles = userRole.includes("admin") ? ["admin", "TEACHERS", "STUDENTS"] : ["STUDENTS"]; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); try { const response = await fetch("/api/users", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(formData), }); const data = await response.json(); if (!response.ok) { setError(data.error); return; } setOpen(false); setFormData({ username: "", firstName: "", lastName: "", email: "", realmRoles: "", }); setError(null); handleAddUser(data.user); } catch (error) { console.error("Erreur lors de la création:", error); } }; return ( Nouvel utilisateur
{error &&
{error}
} setFormData({ ...formData, username: e.target.value }) } /> setFormData({ ...formData, firstName: e.target.value }) } /> setFormData({ ...formData, lastName: e.target.value }) } /> setFormData({ ...formData, email: e.target.value }) } />
); }