// Quick City — Page components (Phase 1: home pages + career as proof of concept) const { useState: useS, useEffect: useE } = React; // IfmHome and LnsHome are defined in pages-home.jsx function CareerPage({ brand }) { const data = window.CAREER_DATA[brand]; const b = window.QC_DATA.brands[brand]; const [activeType, setType] = useS('all'); const [modal, setModal] = useS(null); // { title, job? } const [submitted, setSubmitted] = useS(false); const types = [...new Set(data.jobs.map(j => j.type))]; const list = activeType === 'all' ? data.jobs : data.jobs.filter(j => j.type === activeType); const open = (title, job) => { setSubmitted(false); setModal({ title, job }); }; const close = () => { setModal(null); setSubmitted(false); }; return (
Karriere bei {b.name}

{brand === 'ifm' ? <>Bauen Sie
mit uns auf, was bleibt. : <>Berlin
braucht Macher.}

{brand === 'ifm' ? 'Wir suchen Menschen, die Verantwortung übernehmen — vom Vorarbeiter mit grünem Daumen bis zum Bauleiter mit Weitblick.' : 'Wir bauen die Infrastruktur, von der die Stadt lebt — Glasfaser, Straßen, Versorgungsleitungen.'}

Stellen ansehen {e.preventDefault(); open('Initiativbewerbung');}}>Initiativbewerbung
{data.stats.map(s => (
{s.num}
{s.label}
))}
Warum Quick City

Was Sie bei uns erwartet.

{data.benefits.map((b,i) => (
{String(i+1).padStart(2,'0')}
{b.t}
{b.d}
))}
Offene Stellen

Aktuell ausgeschriebene Positionen.

Filtern Sie nach Bereich. Klicken Sie eine Stelle an, um sich direkt zu bewerben.

{types.map(t => ( ))}
{list.length} offene Stelle{list.length===1?'':'n'}
{list.map((j,i) => (
open(j.title, j)} style={{ background:'#fff', borderTop: i===0?'1px solid #ececec':'none', borderBottom:'1px solid #ececec', padding:'22px 24px', display:'flex', alignItems:'center', gap:24, cursor:'pointer', borderRadius: i===0 ? '8px 8px 0 0' : (i===list.length-1?'0 0 8px 8px':'0') }}>
{j.title}
📍 {j.location}⏱ {j.schedule}· {j.type}
{j.urgent && Dringend}
))}
{modal && !submitted && ( <>
{modal.job ? 'Bewerbung' : 'Initiativbewerbung'}

{modal.title}

{modal.job ? `${modal.job.location} · ${modal.job.schedule} · ${modal.job.type}` : 'Wir freuen uns auf Sie'}
{e.preventDefault(); setSubmitted(true);}}>
)} {submitted && (

Vielen Dank!

Ihre Bewerbung ist eingegangen. Wir melden uns innerhalb von 5 Werktagen.

)}
); } function Field({ label, name, type='text', textarea, required }) { return (
{textarea ?