'use client'; import * as React from 'react'; import { FormState } from '../types'; import { FileText, Upload, X, User, Mail, Briefcase, MessageSquare } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; import { Reveal } from '../../Reveal'; import { Input } from '../components/Input'; interface ContactStepProps { state: FormState; updateState: (updates: Partial) => void; } export function ContactStep({ state, updateState }: ContactStepProps) { return (

Fast geschafft! 🚀

Ich habe alle Details für das Projekt von {state.companyName || 'Ihrem Unternehmen'} erhalten. Hinterlassen Sie mir noch Ihre Kontaktdaten, damit ich Ihnen ein konkretes Angebot erstellen kann.

updateState({ name: e.target.value })} />
Erforderlich
updateState({ email: e.target.value })} />
Erforderlich
updateState({ role: e.target.value })} /> updateState({ message: e.target.value })} />

Dateien hochladen (optional)

0 ? 'border-slate-900 bg-slate-50' : 'border-slate-200 hover:border-slate-400 bg-white hover:shadow-xl' }`} onDragOver={(e) => { e.preventDefault(); e.stopPropagation(); }} onDrop={(e) => { e.preventDefault(); e.stopPropagation(); const files = Array.from(e.dataTransfer.files); if (files.length > 0) updateState({ contactFiles: [...state.contactFiles, ...files] }); }} onClick={() => document.getElementById('contact-upload')?.click()} > { const files = e.target.files ? Array.from(e.target.files) : []; if (files.length > 0) updateState({ contactFiles: [...state.contactFiles, ...files] }); }} /> {state.contactFiles.length > 0 ? ( {state.contactFiles.map((file, idx) => (
{file.name} {(file.size / 1024 / 1024).toFixed(2)} MB
{ e.stopPropagation(); updateState({ contactFiles: state.contactFiles.filter((_, i) => i !== idx) }); }} className="p-2 bg-slate-50 text-slate-400 rounded-full transition-colors focus:outline-none" >
))}

Klicken oder ziehen, um weitere Dateien hinzuzufügen

) : (

Dateien hierher ziehen

oder klicken zum Auswählen

)}
); }