"use client"; import type React from "react"; import { useState } from "react"; import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "@/app/_components/ui/dialog"; import { Button } from "@/app/_components/ui/button"; import { Input } from "@/app/_components/ui/input"; import { Checkbox } from "@/app/_components/ui/checkbox"; import { createUser } from "@/app/(protected)/(admin)/dashboard/user-management/action"; import { toast } from "sonner"; import { Mail, Lock, Loader2, X } from "lucide-react"; interface AddUserDialogProps { open: boolean; onOpenChange: (open: boolean) => void; onUserAdded: () => void; } export function AddUserDialog({ open, onOpenChange, onUserAdded, }: AddUserDialogProps) { const [isLoading, setIsLoading] = useState(false); const [formData, setFormData] = useState({ email: "", password: "", emailConfirm: true, }); const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { await createUser({ email: formData.email, password: formData.password, email_confirm: formData.emailConfirm, }); toast.success("User created successfully."); onUserAdded(); onOpenChange(false); setFormData({ email: "", password: "", emailConfirm: true, }); } catch (error) { toast.error("Failed to create user."); } finally { setIsLoading(false); } }; return ( Create a new user {/* */}
setFormData((prev) => ({ ...prev, emailConfirm: checked as boolean, })) } className="border-zinc-700" />

A confirmation email will not be sent when creating a user via this form.

); }