'use client' import { Suspense, useState, useEffect } from 'react' import { useRouter, useSearchParams } from 'next/navigation' import Link from 'next/link' import Header from '@/components/Header' import Footer from '@/components/Footer' import { useLanguage } from '@/lib/LanguageContext' type FundingProgram = 'DIGITALPAKT_1' | 'DIGITALPAKT_2' | 'LANDESFOERDERUNG' | 'SCHULTRAEGER' type FederalState = 'NI' | 'NRW' | 'BAY' | 'BW' | 'HE' | 'SN' | 'TH' | 'SA' | 'BB' | 'MV' | 'SH' | 'HH' | 'HB' | 'BE' | 'SL' | 'RP' interface FormData { title: string funding_program: FundingProgram federal_state: FederalState preset_id: string } const federalStates: { value: string; label: string }[] = [ { value: 'NI', label: 'Niedersachsen' }, { value: 'NRW', label: 'Nordrhein-Westfalen' }, { value: 'BAY', label: 'Bayern' }, { value: 'BW', label: 'Baden-Wuerttemberg' }, { value: 'HE', label: 'Hessen' }, { value: 'SN', label: 'Sachsen' }, { value: 'TH', label: 'Thueringen' }, { value: 'SA', label: 'Sachsen-Anhalt' }, { value: 'BB', label: 'Brandenburg' }, { value: 'MV', label: 'Mecklenburg-Vorpommern' }, { value: 'SH', label: 'Schleswig-Holstein' }, { value: 'HH', label: 'Hamburg' }, { value: 'HB', label: 'Bremen' }, { value: 'BE', label: 'Berlin' }, { value: 'SL', label: 'Saarland' }, { value: 'RP', label: 'Rheinland-Pfalz' }, ] export default function NewFoerderantragPage() { return (
}>
) } function NewFoerderantragContent() { const router = useRouter() const searchParams = useSearchParams() const { t, isRTL } = useLanguage() const presets = [ { id: 'breakpilot_basic', nameKey: 'fa_preset_basic_name', descKey: 'fa_preset_basic_desc', budgetKey: 'fa_preset_basic_budget', color: 'blue' }, { id: 'breakpilot_cluster', nameKey: 'fa_preset_cluster_name', descKey: 'fa_preset_cluster_desc', budgetKey: 'fa_preset_cluster_budget', color: 'purple' }, { id: '', nameKey: 'fa_preset_custom_name', descKey: 'fa_preset_custom_desc', budgetKey: 'fa_preset_custom_budget', color: 'slate' }, ] const fundingPrograms = [ { value: 'DIGITALPAKT_2', labelKey: 'fa_program_dp2' }, { value: 'DIGITALPAKT_1', labelKey: 'fa_program_dp1' }, { value: 'LANDESFOERDERUNG', labelKey: 'fa_program_landes' }, { value: 'SCHULTRAEGER', labelKey: 'fa_program_traeger' }, ] const [formData, setFormData] = useState({ title: '', funding_program: 'DIGITALPAKT_2', federal_state: 'NI', preset_id: searchParams.get('preset') || '', }) const [isSubmitting, setIsSubmitting] = useState(false) const [error, setError] = useState(null) useEffect(() => { const preset = searchParams.get('preset') if (preset) { const presetInfo = presets.find(p => p.id === preset) if (presetInfo && presetInfo.id) { setFormData(prev => ({ ...prev, preset_id: preset, title: `${t(presetInfo.nameKey)} - ${new Date().toLocaleDateString('de-DE')}`, })) } } }, [searchParams]) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setError(null) if (!formData.title.trim()) { setError(t('fa_project_title_label')) return } setIsSubmitting(true) try { const mockId = 'demo-' + Date.now() router.push(`/foerderantrag/${mockId}`) } catch { setError('Error') } finally { setIsSubmitting(false) } } const getPresetColorClasses = (color: string, isSelected: boolean) => { const colors: Record = { blue: { border: isSelected ? 'border-blue-500' : 'border-slate-200', bg: isSelected ? 'bg-blue-50' : 'bg-white', ring: 'ring-blue-500' }, purple: { border: isSelected ? 'border-purple-500' : 'border-slate-200', bg: isSelected ? 'bg-purple-50' : 'bg-white', ring: 'ring-purple-500' }, slate: { border: isSelected ? 'border-slate-500' : 'border-slate-200', bg: isSelected ? 'bg-slate-50' : 'bg-white', ring: 'ring-slate-500' }, } return colors[color] || colors.slate } return ( <>
{/* Back Link */} {t('fa_back_overview')} {/* Header */}

{t('fa_new_title')}

{t('fa_new_subtitle')}

{/* Preset Selection */}
{presets.map((preset) => { const isSelected = formData.preset_id === preset.id const colors = getPresetColorClasses(preset.color, isSelected) return ( ) })}
{/* Funding Program */}
{fundingPrograms.map((program) => ( ))}
{/* Federal State */}
{federalStates.map((state) => ( ))}
{formData.federal_state === 'NI' && (

{t('fa_ni_hint')}

)}
{/* Project Title */}
setFormData(prev => ({ ...prev, title: e.target.value }))} placeholder={t('fa_project_title_label')} className="w-full px-4 py-3 border border-slate-200 rounded-xl focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent" maxLength={200} />
{/* Error */} {error && (
{error}
)} {/* Actions */}
{t('fa_cancel')}
{/* Help Box */}

{t('fa_ai_hint_title')}

{t('fa_ai_hint_text')}