'use client' import { use } from 'react' import { useRouter } from 'next/navigation' import { trpc } from '@/lib/trpc-client' import { getTrpcErrorMessage } from '@/lib/trpc-error' import Link from 'next/link' import { useState, useEffect } from 'react' import { SPARTEN, MEMBER_STATUS_LABELS } from '@innungsapp/shared' export default function MitgliedEditPage({ params, }: { params: Promise<{ id: string }> }) { const { id } = use(params) const router = useRouter() const { data: member, isLoading } = trpc.members.byId.useQuery({ id }) const updateMutation = trpc.members.update.useMutation({ onSuccess: () => router.push('/dashboard/mitglieder'), }) const resendMutation = trpc.members.resendInvite.useMutation() const [form, setForm] = useState({ name: '', betrieb: '', sparte: '', ort: '', telefon: '', email: '', status: 'aktiv' as 'aktiv' | 'ruhend' | 'ausgetreten', istAusbildungsbetrieb: false, seit: undefined as number | undefined, }) useEffect(() => { if (member) { setForm({ name: member.name, betrieb: member.betrieb, sparte: member.sparte, ort: member.ort, telefon: member.telefon ?? '', email: member.email, status: member.status as 'aktiv' | 'ruhend' | 'ausgetreten', istAusbildungsbetrieb: member.istAusbildungsbetrieb, seit: member.seit ?? undefined, }) } }, [member]) if (isLoading) return
Wird geladen...
if (!member) return null function handleSubmit(e: React.FormEvent) { e.preventDefault() updateMutation.mutate({ id, data: form }) } const inputClass = 'w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-brand-500 focus:border-transparent' return (
← Zurück /

Mitglied bearbeiten

{/* Invite Status */}

App-Zugang

{member.userId ? 'Mitglied hat sich eingeloggt' : 'Noch nicht eingeladen / eingeloggt'}

{!member.userId && ( )}
{/* Section: Stammdaten */}

Stammdaten

setForm({ ...form, name: e.target.value })} className={inputClass} />
setForm({ ...form, betrieb: e.target.value })} className={inputClass} />
setForm({ ...form, ort: e.target.value })} className={inputClass} />
{/* Section: Kontakt */}

Kontakt

setForm({ ...form, email: e.target.value })} className={inputClass} />
setForm({ ...form, telefon: e.target.value })} className={inputClass} />
{/* Section: Status */}

Status

setForm({ ...form, seit: e.target.value ? Number(e.target.value) : undefined })} className={inputClass} />
{updateMutation.error && (

{getTrpcErrorMessage(updateMutation.error)}

)}
Abbrechen
) }