/* 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 }) => (
);
const BigEventRow = ({ ev, T, onClick }) => (
{ev.mag.toFixed(1)}
{ev.place}
{ev.flag}
{ev.timeMsk} МСК
·
h={ev.depth.toFixed(1)} км
{ev.confirmed && ✓ 2 ист.}
);