/* parts/sections-bottom.jsx — About, FAQ, Contact, Footer, CartDrawer */ const { useState } = React; function About() { return (
Über Ice Cup

Eis als Geschäft,
einfach gemacht.

Ice Cup macht verkaufsfertiges Würfeleis für Schweizer Betriebe zugänglich. Unsere Mission: Gastronomie, Detailhandel und Events zuverlässig mit Swiss-Made-Eis beliefern – frisch, hygienisch und ohne Aufwand.

1 MIO.+Becher geliefert
150+Partner schweizweit
100%Swiss Made
3 CMVOLLEISWÜRFEL
); } function FaqItem({ item, open, onToggle }) { const ref = React.useRef(null); return (
{item.a}
); } function FAQ() { const [open, setOpen] = useState(0); return (
GUT ZU WISSEN

Questions, chilled.

{FAQS.map((f, i) => setOpen(open === i ? -1 : i)} /> )}
); } const RECAPTCHA_SITE_KEY = '6LccXx4tAAAAALssGBSbQh66jLHs2BxLSCRCBGQa'; function Contact() { const [form, setForm] = useState({ firma: '', vorname: '', nachname: '', email: '', telefon: '', strasse: '', plz: '', ort: '', uid: '', bemerkungen: '' }); const [errors, setErrors] = useState({}); const [sent, setSent] = useState(false); const [sending, setSending] = useState(false); const [serverError, setServerError] = useState(null); const set = (k, v) => {setForm((s) => ({ ...s, [k]: v }));if (errors[k]) setErrors((e) => ({ ...e, [k]: null }));}; const submit = async (e) => { e.preventDefault(); const err = {}; if (!form.firma.trim()) err.firma = 'Firma erforderlich'; if (!form.vorname.trim()) err.vorname = 'Vorname erforderlich'; if (!form.nachname.trim()) err.nachname = 'Nachname erforderlich'; if (!form.email.trim()) err.email = 'E-Mail erforderlich';else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(form.email)) err.email = 'E-Mail ungültig'; if (!form.telefon.trim()) err.telefon = 'Telefonnummer erforderlich'; if (!form.strasse.trim()) err.strasse = 'Bitte Strasse und Hausnummer angeben'; if (!form.plz.trim()) err.plz = 'PLZ fehlt'; if (!form.ort.trim()) err.ort = 'Ort fehlt'; if (form.uid.trim() && !/^CHE-?\d{3}\.?\d{3}\.?\d{3}$/i.test(form.uid.trim())) err.uid = 'Format: CHE-123.456.789'; setErrors(err); if (Object.keys(err).length > 0) return; setSending(true); setServerError(null); try { const token = await new Promise((resolve, reject) => grecaptcha.ready(() => grecaptcha.execute(RECAPTCHA_SITE_KEY, { action: 'contact' }).then(resolve).catch(reject) ) ); const body = new URLSearchParams({ ...form, recaptcha_token: token }); const res = await fetch('send.php', { method: 'POST', body }); const data = await res.json(); if (data.ok) { setSent(true); setForm({ firma: '', vorname: '', nachname: '', email: '', telefon: '', strasse: '', plz: '', ort: '', uid: '', bemerkungen: '' }); } else { setServerError(data.error || 'Unbekannter Fehler. Bitte versuche es erneut.'); } } catch { setServerError('Verbindungsfehler. Bitte überprüfe deine Internetverbindung.'); } finally { setSending(false); } }; return (
Partner werden

Werde Ice Cup Partner.

Hinterlasse deine Angaben – wir melden uns innerhalb eines Werktages mit Konditionen, Sortiment und Liefermöglichkeiten für deinen Betrieb.

info@icecup.ch
Lenzburgerstrasse 2 · 5702 Niederlenz
Swiss Made · Schweiz
{sent &&
Danke! Deine Angaben sind eingegangen — wir melden uns in Kürze.
} {serverError &&
{serverError}
}
set('firma', e.target.value)} placeholder="Muster AG" /> {errors.firma && {errors.firma}}
set('vorname', e.target.value)} placeholder="Max" /> {errors.vorname && {errors.vorname}}
set('nachname', e.target.value)} placeholder="Muster" /> {errors.nachname && {errors.nachname}}
set('email', e.target.value)} placeholder="max@email.com" /> {errors.email && {errors.email}}
set('telefon', e.target.value)} placeholder="+41 79 000 00 00" /> {errors.telefon && {errors.telefon}}
set('uid', e.target.value)} placeholder="CHE-123.456.789" /> {errors.uid && {errors.uid}}
set('strasse', e.target.value)} placeholder="Musterstrasse 12" /> {errors.strasse && {errors.strasse}}
set('plz', e.target.value)} placeholder="8001" /> {errors.plz && {errors.plz}}
set('ort', e.target.value)} placeholder="Zürich" /> {errors.ort && {errors.ort}}

Diese Website ist durch reCAPTCHA geschützt. Es gelten die Datenschutzbestimmungen und Nutzungsbedingungen von Google.

); } function Footer({ onShop }) { const cols = [ ['Sortiment', [['Ice Cup to Go', '#products'], ['Ice Cup Bags', '#products'], ['Strohhalme', '#products'], ['Display-Tiefkühler', '#freezers']]], ['Unternehmen', [['Über uns', '#about'], ['Partnernetz', '#partners'], ['Nachhaltigkeit', '#about']]], ['Support', [['Kontakt', '#contact'], ['FAQ', '#faq']]]]; return ( ); } /* ---------- Cart drawer ---------- */ function CartDrawer({ open, items, onClose, onQty, onRemove }) { const lines = Object.values(items); const total = lines.reduce((s, l) => s + l.price * l.qty, 0); const count = lines.reduce((s, l) => s + l.qty, 0); return ( <>
); } Object.assign(window, { About, FAQ, Contact, Footer, CartDrawer });