'use client' import { useState, useEffect } from 'react' import { useLanguage } from '@/lib/LanguageContext' import { useTheme } from '@/lib/ThemeContext' import { GermanyMap, bundeslaender } from './GermanyMap' import { CityMap } from './CityMap' import { SchoolSearch } from './SchoolSearch' import { BPIcon } from './Logo' interface OnboardingWizardProps { onComplete: (data: OnboardingData) => void } export interface OnboardingData { bundesland: string bundeslandName: string city: string cityLat?: number cityLng?: number schoolName: string schoolType: string } import { schulformen, schulformKategorien } from './onboarding-wizard/schulformen' export function OnboardingWizard({ onComplete }: OnboardingWizardProps) { const { t } = useLanguage() const { isDark } = useTheme() const [step, setStep] = useState(1) const [data, setData] = useState>({}) const [citySearch, setCitySearch] = useState('') const [schoolSearch, setSchoolSearch] = useState('') const totalSteps = 4 const handleNext = () => { if (step < totalSteps) { setStep(step + 1) } else { // Abschluss onComplete(data as OnboardingData) } } const handleBack = () => { if (step > 1) { setStep(step - 1) } } const canProceed = () => { switch (step) { case 1: return !!data.bundesland case 2: return !!data.city && data.city.trim().length > 0 case 3: return !!data.schoolName && data.schoolName.trim().length > 0 case 4: return !!data.schoolType default: return false } } return (
{/* Animated Background */}
{/* Logo & Willkommen */}

BreakPilot Studio

Willkommen! Lassen Sie uns loslegen.

{/* Progress Bar */}
{[1, 2, 3, 4].map((s) => (
{s < step ? '✓' : s}
))}
{/* Main Card */}
{/* Step 1: Bundesland */} {step === 1 && (

In welchem Bundesland unterrichten Sie?

Klicken Sie auf Ihr Bundesland in der Karte

setData({ ...data, bundesland: stateId, bundeslandName: bundeslaender[stateId as keyof typeof bundeslaender] })} className="mx-auto max-w-md" />
)} {/* Step 2: Stadt */} {step === 2 && (

In welcher Stadt arbeiten Sie?

Suchen Sie Ihre Stadt oder klicken Sie auf die Karte

{/* Info Box - Bundesland */}
📍 {data.bundeslandName}
{/* CityMap Komponente */} setData({ ...data, city, cityLat: lat, cityLng: lng })} className="max-w-lg mx-auto" />
)} {/* Step 3: Schule */} {step === 3 && (

Wie heißt Ihre Schule?

Suchen Sie Ihre Schule oder geben Sie den Namen ein

{/* SchoolSearch Komponente mit Autocomplete */} setData({ ...data, schoolName })} className="max-w-lg mx-auto" />
)} {/* Step 4: Schulform */} {step === 4 && (

Welche Schulform ist es?

Wählen Sie die passende Schulform

{/* Scrollbarer Bereich mit Kategorien */}
{schulformKategorien.map((kategorie) => { const formenInKategorie = schulformen.filter(f => f.category === kategorie.id) if (formenInKategorie.length === 0) return null return (
{/* Kategorie-Header */}
{kategorie.icon} {kategorie.name}
{/* Schulformen in dieser Kategorie */}
{formenInKategorie.map((form) => { const isSelected = data.schoolType === form.id return ( ) })}
) })}
{/* Summary */} {data.schoolType && (

{data.schoolName}

{schulformen.find(f => f.id === data.schoolType)?.name} in {data.city}, {data.bundeslandName}

)}
)}
{/* Navigation Buttons */}
{step > 1 && ( )}
{/* Skip Option */}
) }