import { useState } from 'react' import { Check } from 'lucide-react' import { useAuth } from '../context/AuthContext' const COLORS = ['#1D9E75','#378ADD','#D85A30','#EF9F27','#7F77DD','#D4537E','#639922','#888780'] export default function SetupScreen() { const { setup } = useAuth() const [form, setForm] = useState({ name: '', pin: '', pin2: '', avatar_color: COLORS[0], sex: 'm', height: '', auth_type: 'pin', session_days: 30, }) const [error, setError] = useState(null) const [saving, setSaving] = useState(false) const set = (k,v) => setForm(f=>({...f,[k]:v})) const handleSetup = async () => { if (!form.name.trim()) return setError('Bitte Name eingeben') if (form.pin.length < 4) return setError('PIN mind. 4 Zeichen') if (form.pin !== form.pin2) return setError('PINs stimmen nicht überein') setSaving(true); setError(null) try { await setup({ name: form.name.trim(), pin: form.pin, avatar_color: form.avatar_color, sex: form.sex, height: parseFloat(form.height)||178, auth_type: form.auth_type, session_days: form.session_days, }) } catch(e) { setError(e.message) } finally { setSaving(false) } } const initials = form.name.split(' ').map(n=>n[0]).join('').toUpperCase().slice(0,2)||'?' return (
BodyTrack
Erste Einrichtung
Erstelle deinen Admin-Account. Du kannst danach weitere Profile anlegen.
{/* Avatar preview */}
{initials}
set('name',e.target.value)} autoFocus/>
Avatar-Farbe
{COLORS.map(c=>(
set('avatar_color',c)} style={{width:28,height:28,borderRadius:'50%',background:c,cursor:'pointer', border:`3px solid ${form.avatar_color===c?'white':'transparent'}`, boxShadow:form.avatar_color===c?`0 0 0 2px ${c}`:'none'}}/> ))}
set('height',e.target.value)}/> cm
set('pin',e.target.value)}/>
set('pin2',e.target.value)} onKeyDown={e=>e.key==='Enter'&&handleSetup()}/>
{error && (
{error}
)}
) }