/* shell.jsx — header, footer, demo banner, logo, language switcher */ const { useState, useEffect, useRef, useMemo, useCallback } = React; // ─── Logo wordmark ──────────────────────────────────────────────── // Brief calls for a redrawn SVG; placeholder text mark. function Logo({ size = 18, className = "" }) { return ( F 1 RST MOTORS ); } // ─── Language switcher ──────────────────────────────────────────── const LANGS = [ { code: "en", label: "EN", name: "English" }, { code: "ar", label: "ع", name: "العربية" }, { code: "ru", label: "RU", name: "Русский" }, { code: "zh", label: "中", name: "中文" }, ]; function LangSwitcher({ value, onChange }) { const [open, setOpen] = useState(false); const ref = useRef(null); useEffect(() => { if (!open) return; const f = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); }; document.addEventListener("mousedown", f); return () => document.removeEventListener("mousedown", f); }, [open]); const cur = LANGS.find((l) => l.code === value) || LANGS[0]; return (
{sub}
}