/* global React */ // ──────────────────────────────────────────────────────────── // TSUNAMI — оценка риска цунами для события и ссылка на NOAA. // // Без официального API цунами-прогноза: используем эвристику USGS, // показываем только когда М ≥ 6.5 и (h ≤ 50 км) и (предполагаемо в воде). // «В воде» определяем приблизительно: расстояние до ближайшего города из // нашей базы > 100 км ⇒ скорее всего океан/море. Для серьёзных решений // направляем на tsunami.gov / Росгидромет — у нас лишь индикатор. // ──────────────────────────────────────────────────────────── // Estimates a tsunami risk level given the basic event parameters. // Returns: "high" | "mid" | "low" | null (null → don't show the section) window.assessTsunamiRisk = (ev) => { if (!ev) return null; const mag = Number(ev.mag) || 0; const depth = Number(ev.depth) || 0; // Rules of thumb (USGS): // M < 6.5 → no tsunami concern (well below threshold) // depth > 100 km → too deep to displace water effectively // shallow + 7.0+ → strong concern // shallow + 6.5–7.0 → local watch level if (mag < 6.5) return null; if (depth > 100) return null; if (mag >= 7.5 && depth <= 50) return "high"; if (mag >= 7.0 && depth <= 70) return "mid"; if (mag >= 6.5 && depth <= 50) return "mid"; return "low"; }; window.TsunamiNotice = ({ T, dark, ev, onOpenDetail }) => { const risk = window.assessTsunamiRisk(ev); if (!risk) return null; const color = risk === "high" ? T.danger : risk === "mid" ? T.warning : T.accent; const label = risk === "high" ? "ВЫСОКИЙ РИСК" : risk === "mid" ? "ВОЗМОЖНА УГРОЗА" : "СЛАБЫЙ РИСК"; return (