"use client"; import { 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 { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; interface AddUserButtonProps { userRole: string[]; handleAddUser: (user: any) => void; } export function AddUserButton({ userRole, handleAddUser }: AddUserButtonProps) { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); const [formData, setFormData] = useState({ username: "", firstName: "", lastName: "", email: "", realmRoles: "", }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(""); 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 || "Failed to create user"); return; } handleAddUser(data.user); setFormData({ username: "", firstName: "", lastName: "", email: "", realmRoles: "", }); setOpen(false); } catch (error) { setError("An error occurred while creating the user"); console.error("Error creating user:", error); } finally { setLoading(false); } }; return ( Ajouter un utilisateur
{error && (
{error}
)}
setFormData(prev => ({ ...prev, username: e.target.value }))} required />
setFormData(prev => ({ ...prev, firstName: e.target.value }))} required />
setFormData(prev => ({ ...prev, lastName: e.target.value }))} required />
setFormData(prev => ({ ...prev, email: e.target.value }))} required />
); }