"use client"; import { useEffect, useState } from "react"; import { useForm } from "react-hook-form"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { UserService } from "@/services/user.service"; import type { User } from "@/types/user"; interface UserEditDialogProps { user: User | null; open: boolean; onOpenChange: (open: boolean) => void; onSuccess: () => void; } export function UserEditDialog({ user, open, onOpenChange, onSuccess, }: UserEditDialogProps) { const [loading, setLoading] = useState(false); const form = useForm>({ defaultValues: { role: "user", status: "active", }, }); useEffect(() => { if (user) { form.reset({ role: user.role || "user", status: user.status || "active", }); } }, [user, form]); const onSubmit = async (values: Partial) => { if (!user) return; setLoading(true); try { await UserService.updateAdmin(user.uuid, values); onSuccess(); onOpenChange(false); } catch (error) { console.error(error); } finally { setLoading(false); } }; return ( Modifier l'utilisateur @{user?.username}
( Rôle )} /> ( Statut )} />
); }