/* global React, Placeholder */ const { useState, useEffect, useRef } = React; const FLEET = [ { id: 'global-6000', mfr: 'Bombardier', model: 'Global 6000', reg: 'OK-GRX', tag: 'Ultra Long Range', seats: 12, range: '11,112 km', rangeNm: '6,000 NM', speed: '1,080 km/h', ceiling: '51,000 ft', desc: 'Top-class ultra long range business jet. The generously-sized cabin is designed to provide maximum comfort for work, sleep, and conversation across continents.', cabin: { length: '13.18 m', width: '2.41 m', height: '1.91 m' }, }, { id: 'gulfstream-g280', mfr: 'Gulfstream', model: 'G280', reg: 'OK-GTX', tag: 'Brand New Mid-Size', seats: 10, range: '6,667 km', rangeNm: '3,603 NM', speed: '900 km/h', ceiling: '45,000 ft', desc: 'Brand new super mid-size jet. Stand-up cabin with high-quality furniture and fresh-air circulation ensures maximum comfort on board.', cabin: { length: '7.98 m', width: '2.13 m', height: '1.93 m' }, }, { id: 'challenger-605', mfr: 'Bombardier', model: 'Challenger 605', reg: 'OK-BPS', tag: 'Heavy · Trans-Atlantic', seats: 12, range: '7,400 km', rangeNm: '4,000 NM', speed: '870 km/h', ceiling: '41,000 ft', desc: 'Heavy jet suitable for trans-Atlantic flights without stopovers as well as for short and medium-haul flights across Europe.', cabin: { length: '8.61 m', width: '2.49 m', height: '1.85 m' }, }, { id: 'learjet-75', mfr: 'Bombardier', model: 'Learjet 75', reg: 'OK-MBS', tag: 'Super Light', seats: 6, range: '3,780 km', rangeNm: '2,040 NM', speed: '865 km/h', ceiling: '51,000 ft', desc: 'High-performance super light jet for medium-range travel. Latest onboard technology and the capability to take off and land at smaller airports.', cabin: { length: '5.59 m', width: '1.55 m', height: '1.50 m' }, }, { id: 'gulfstream-g200', mfr: 'Gulfstream', model: 'G200', reg: 'OK-GLX', tag: 'Super Midsize', seats: 10, range: '6,300 km', rangeNm: '3,400 NM', speed: '850 km/h', ceiling: '45,000 ft', desc: 'Top-class super-midsize business jet. Generously-sized cabin designed to provide maximum comfort for your work and travel.', cabin: { length: '7.44 m', width: '2.18 m', height: '1.91 m' }, }, ]; /* ============================================================ FLEET STACK — scroll-snap, each aircraft a full screen ============================================================ */ function FleetStack() { const [activeIdx, setActiveIdx] = useState(0); const containerRef = useRef(null); useEffect(() => { const obs = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting && e.intersectionRatio > 0.5) { const idx = Number(e.target.dataset.idx); setActiveIdx(idx); } }); }, { threshold: [0.5, 0.7] }); const sections = containerRef.current?.querySelectorAll('[data-fleet-slide]'); sections?.forEach(s => obs.observe(s)); return () => obs.disconnect(); }, []); return (
{/* Section header */}
03 — The Fleet

Five aircraft.
One operator.

From a six-seat Learjet 75 to a 12-seat Global 6000 with 11,000 km of range — scroll through every airframe currently registered to Eclair.

{/* Sticky side rail */}
{FLEET.map((a, i) => ( 0{i + 1} {a.model} · {a.reg} ))}
{/* Slides */} {FLEET.map((a, i) => (
{/* Left: text */}
0{i + 1} / 0{FLEET.length} · {a.tag}
{a.mfr.toUpperCase()}

{a.model}

{a.reg}

{a.desc}

{/* Spec grid */}
{[ { l: 'Passengers', v: a.seats, u: 'pax' }, { l: 'Range', v: a.range, u: a.rangeNm }, { l: 'Cruise speed', v: a.speed, u: '' }, { l: 'Ceiling', v: a.ceiling, u: '' }, ].map(s => (
{s.l}
{s.v} {s.u && {s.u}}
))}
{/* Right: image */}
{['Cabin length', 'Cabin width', 'Cabin height'].map((l, ii) => (
{l}
{Object.values(a.cabin)[ii]}
))}
))}
); } Object.assign(window, { FleetStack, FLEET });