import React, { useState } from 'react' import { useContent } from '../hooks/useContent' import { useFormSubmit } from '../hooks/useFormSubmit' import { validateResourceDownload } from '../utils/validation' import SEOHead from '../components/SEOHead' const inputStyle = { width: '100%', padding: '12px', background: 'var(--bg-elevated)', border: '1px solid var(--glass-border)', borderRadius: 'var(--radius-sm)', color: 'var(--text-primary)', fontSize: '1rem', } function ResourceRequestForm({ resource, onCancel }) { const resourceId = resource.id || resource.slug const [form, setForm] = useState({ name: '', email: '', company: '', resource_id: resourceId, company_website: '' }) const { submit, loading, success, errors, serverError } = useFormSubmit('/api/resource-download', validateResourceDownload) function updateField(event) { setForm(prev => ({ ...prev, [event.target.name]: event.target.value })) } async function handleSubmit(event) { event.preventDefault() await submit(form) } return (
{success ? (

Danke! Wir prüfen die Anfrage und melden uns bei dir.

) : (

Material anfragen

Wir prüfen die Anfrage. Bei positiver Prüfung verschickt André ein aktuelles Profil persönlich.

{errors.name && } {errors.email && } {errors.company && } {serverError &&

{serverError}

} {errors.resource_id &&

{errors.resource_id}

}
)}
) } export default function Resources() { const { items } = useContent('resources', { pageSize: 20 }) const [selectedResource, setSelectedResource] = useState(null) return (

Ressourcen

Materialien auf Anfrage. Jede Anfrage wird zunächst geprüft.

{items.map(resource => { const resourceId = resource.id || resource.slug const selected = selectedResource === resourceId return (

{resource.title}

{resource.description}

{selected && setSelectedResource(null)} />}
) })} {items.length === 0 &&

Ressourcen werden vorbereitet.

}
) }