'use client' // ============================================================================= // TOM Generator Wizard Component // Main wizard container with step navigation // ============================================================================= import React from 'react' import { useTOMGenerator } from '@/lib/sdk/tom-generator' import { TOM_GENERATOR_STEPS, TOMGeneratorStepId } from '@/lib/sdk/tom-generator/types' // ============================================================================= // STEP INDICATOR // ============================================================================= interface StepIndicatorProps { stepId: TOMGeneratorStepId stepNumber: number title: string isActive: boolean isCompleted: boolean onClick: () => void } function StepIndicator({ stepNumber, title, isActive, isCompleted, onClick, }: StepIndicatorProps) { return ( ) } // ============================================================================= // WIZARD NAVIGATION // ============================================================================= interface WizardNavigationProps { onPrevious: () => void onNext: () => void onSave: () => void canGoPrevious: boolean canGoNext: boolean isLastStep: boolean isSaving: boolean } function WizardNavigation({ onPrevious, onNext, onSave, canGoPrevious, canGoNext, isLastStep, isSaving, }: WizardNavigationProps) { return (
) } // ============================================================================= // PROGRESS BAR // ============================================================================= interface ProgressBarProps { percentage: number } function ProgressBar({ percentage }: ProgressBarProps) { return (
Fortschritt {percentage}%
) } // ============================================================================= // MAIN WIZARD COMPONENT // ============================================================================= interface TOMGeneratorWizardProps { children: React.ReactNode showSidebar?: boolean showProgress?: boolean } export function TOMGeneratorWizard({ children, showSidebar = true, showProgress = true, }: TOMGeneratorWizardProps) { const { state, currentStepIndex, canGoNext, canGoPrevious, goToStep, goToNextStep, goToPreviousStep, isStepCompleted, getCompletionPercentage, saveState, isLoading, } = useTOMGenerator() const [isSaving, setIsSaving] = React.useState(false) const handleSave = async () => { setIsSaving(true) try { await saveState() } catch (error) { console.error('Failed to save:', error) } finally { setIsSaving(false) } } const isLastStep = currentStepIndex === TOM_GENERATOR_STEPS.length - 1 return (
{/* Sidebar */} {showSidebar && (

Wizard-Schritte

{showProgress && }
{TOM_GENERATOR_STEPS.map((step, index) => ( goToStep(step.id)} /> ))}
)} {/* Main Content */}
{/* Step Header */}
Schritt {currentStepIndex + 1} von {TOM_GENERATOR_STEPS.length}

{TOM_GENERATOR_STEPS[currentStepIndex].title.de}

{TOM_GENERATOR_STEPS[currentStepIndex].description.de}

{/* Step Content */}
{children}
{/* Navigation */}
) } // ============================================================================= // EXPORTS // ============================================================================= export { StepIndicator, WizardNavigation, ProgressBar }