// Footer — contact form + links const N8N_WEBHOOK_URL = 'https://YOUR-N8N-INSTANCE.hostinger.cloud/webhook/jk-contact'; function Footer({ lang }) { const t = (de, pl) => lang === 'de' ? de : pl; const waUrl = `https://wa.me/4917645186612?text=${encodeURIComponent( lang === 'de' ? 'Hi Kamil, ich interessiere mich für ein Projekt mit JK Media. Kannst du dich bitte kurz bei mir melden? Danke!' : 'Hej Kamil, mam pomysł na projekt — odezwij się, jak będziesz miał chwilę. Dzięki!' )}`; const [focused, setFocused] = React.useState(''); const [form, setForm] = React.useState({ name: '', email: '', company: '', message: '', website: '' }); const [status, setStatus] = React.useState('idle'); const isMobile = window.useIsMobile ? window.useIsMobile() : false; const update = (k) => (e) => setForm(f => ({ ...f, [k]: e.target.value })); async function onSubmit(e) { e.preventDefault(); if (form.website) return; if (!form.name.trim() || !form.email.trim() || !form.message.trim()) { setStatus('invalid'); return; } setStatus('sending'); try { const res = await fetch(N8N_WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: form.name, email: form.email, company: form.company, message: form.message, lang, source: 'jk-media-website', submittedAt: new Date().toISOString(), }), }); if (!res.ok) throw new Error(String(res.status)); setStatus('sent'); setForm({ name: '', email: '', company: '', message: '', website: '' }); } catch (err) { setStatus('error'); } } const fields = [ ['name', t('Name','Imię'), 'text'], ['email', t('E-Mail','E-Mail'), 'email'], ['company', t('Unternehmen','Firma'), 'text'], ]; const btnLabel = { idle: t('Kostenlose Beratung anfragen','Zapytaj o bezpłatną konsultację') + ' →', invalid: t('Bitte alle Pflichtfelder ausfüllen','Wypełnij wszystkie wymagane pola'), sending: t('Wird gesendet…','Wysyłanie…'), sent: t('Danke! Wir melden uns.','Dziękujemy! Odezwiemy się.'), error: t('Fehler — bitte erneut versuchen','Błąd — spróbuj ponownie'), }[status]; const btnBg = status === 'sent' ? '#1f7a3a' : status === 'error' ? '#a83232' : 'var(--gold)'; const btnColor = (status === 'sent' || status === 'error') ? '#fff' : '#0A0A0A'; return (