/* global React */ // ──────────────────────────────────────────────────────────── // HOME — вариант C: «Лента-минимализм» // Без карты-героя. Чистая хронология сгруппированная по дням МСК, // крупная типографика, inline-сейсмограммы под каждой строкой. // «Терминал учёного». // ──────────────────────────────────────────────────────────── window.HomeScreenC = ({ T, dark, onOpenEvent }) => { const data = window.DATA.useDataState(); const events = data.events; if (!events.length) { return (
События ещё не загружены.
); } const ru24 = events.filter((e) => e.isRu && e.minutesAgo < 24*60).length; const world24 = events.filter((e) => e.minutesAgo < 24*60).length; const recent24 = events.filter((e) => e.minutesAgo < 24*60); const maxMag = recent24.length > 0 ? Math.max(...recent24.map((e) => e.mag)) : 0; // Группировка по дням МСК const groupKey = (ev) => { const d = new Date(ev.timeUtc); return new Intl.DateTimeFormat("ru-RU", { day: "2-digit", month: "long", timeZone: "Europe/Moscow", }).format(d).toUpperCase(); }; const groups = []; const seen = new Map(); for (const ev of events) { const key = groupKey(ev); if (!seen.has(key)) { seen.set(key, []); groups.push({ label: key, items: seen.get(key) }); } seen.get(key).push(ev); } return (
{/* Шапка-метрика */}
МОНИТОРИНГ АКТИВЕН USGS · EMSC
{/* Группы по дням */} {groups.map((g) => (
{g.label}
{g.items.map((ev) => ( onOpenEvent(ev)} /> ))}
))}
); }; const Metric = ({ T, label, value, hint, highlight }) => (
{label}
{value}
{hint}
); const BigEventRow = ({ ev, T, onClick }) => (
{ev.mag.toFixed(1)}
{ev.place}
{ev.flag} {ev.timeMsk} МСК · h={ev.depth.toFixed(1)} км {ev.confirmed && ✓ 2 ист.}
);