"use client" import { useState } from "react" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { IUser } from "@/lib/api" interface UserFormProps { open: boolean onOpenChange: (open: boolean) => void // eslint-disable-next-line @typescript-eslint/no-explicit-any onSubmit: (data: any) => Promise user?: IUser mode: 'create' | 'edit' } const roles = [ { value: 'superadmin', label: 'Super Admin' }, { value: 'admin', label: 'Admin' }, { value: 'trainer', label: 'Trainer' }, ] export function UserForm({ open, onOpenChange, onSubmit, user, mode }: UserFormProps) { const [loading, setLoading] = useState(false) const [formData, setFormData] = useState({ username: user?.username || '', email: user?.email || '', first_name: user?.first_name || '', last_name: user?.last_name || '', password: '', role: user?.role || 'trainer', }) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) try { await onSubmit(formData) onOpenChange(false) } finally { setLoading(false) } } return ( {mode === 'create' ? 'Neuer Benutzer' : 'Benutzer bearbeiten'} {mode === 'create' ? 'Erstelle einen neuen Benutzer mit Rolle' : 'Bearbeite die Benutzerdaten'}
setFormData({ ...formData, first_name: e.target.value })} required />
setFormData({ ...formData, last_name: e.target.value })} required />
setFormData({ ...formData, username: e.target.value })} required />
setFormData({ ...formData, email: e.target.value })} required />
{mode === 'create' && (
setFormData({ ...formData, password: e.target.value })} required={mode === 'create'} />
)}
) }