import React, { useState } from 'react'; import api from '../api'; import { useLanguage } from '../providers/language/LanguageContext'; interface OnboardingWizardProps { onComplete: () => void; onDismiss: () => void; } const OnboardingWizard: React.FC = ({ onComplete, onDismiss }) => { const { t } = useLanguage(); const [planKey, setPlanKey] = useState<'TRIAL_7D' | 'STANDARD_MONTHLY'>('TRIAL_7D'); const [mandateName, setMandateName] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const _handleSubmit = async () => { setLoading(true); setError(null); try { const res = await api.post('/api/local/onboarding', { planKey, companyName: mandateName.trim() || undefined, }); if (res.data?.alreadyProvisioned) { setError(t('onboardingWizard.duHastBereitsEinenMandanten')); return; } window.dispatchEvent(new CustomEvent('features-changed')); onComplete(); } catch (err: any) { setError(err?.response?.data?.detail || 'Fehler bei der Einrichtung'); } finally { setLoading(false); } }; return (

{t('onboardingWizard.mandantErstellen')}

Erstelle deinen eigenen Arbeitsbereich mit Abo-Auswahl.

setMandateName(e.target.value)} placeholder={t('onboardingWizard.zBFirmennameOderProjektname')} style={{ width: '100%', padding: '10px 12px', borderRadius: '6px', border: '1px solid var(--border, #d1d5db)', fontSize: '1rem', boxSizing: 'border-box', }} />
{error &&

{error}

}
); }; export default OnboardingWizard;