/* ═══════════════════════════════════════════════════════════════ FOXBOT PRO — MOBILE SCREENS (Trading, Signaux, Charts, More) Phase 2 — implémentés côté coding (cohérent avec mobile-shell/dashboard) ═══════════════════════════════════════════════════════════════ */ const { useState: useStateS, useEffect: useEffectS, useRef: useRefS, useMemo: useMemoS } = React; /* ───────────────────────────────────────────────────────────────── MobileSignaux — liste compacte de signaux ───────────────────────────────────────────────────────────────── */ function MobileSignaux({ onAction }) { const store = window.useStore ? window.useStore() : (window.MOCK || {}); const SIGNALS = Array.isArray(store.SIGNALS) ? store.SIGNALS : []; const [filter, setFilter] = useStateS("all"); const [scanning, setScanning] = useStateS(false); const [expanded, setExpanded] = useStateS(null); const filtered = SIGNALS.filter(s => { if (filter === "all") return true; if (filter === "long") return s.direction === "LONG"; if (filter === "short") return s.direction === "SHORT"; if (filter === "premium") return s.score >= 8; return true; }); async function doScan() { setScanning(true); window.HAPTIC && window.HAPTIC.toggle(); try { await window.fbScan(); } catch {} window.HAPTIC && window.HAPTIC.success(); setScanning(false); emitToast({ type: "success", msg: "Scan terminé" }); } return (
/link {code.value}{desc}
{cta && }