"use client"; import clsx from "clsx"; import { formatSignalDirection, formatSignalStrength, localizedText, signalTone, } from "./FutureForecastModal.utils"; type MeteorologySignal = { direction?: string | null; label?: string | null; label_en?: string | null; strength?: string | null; summary?: string | null; summary_en?: string | null; }; export function FutureForecastTodayEvidenceGrid({ airportMetarAnchor, confirmationRules, invalidationRules, locale, meteorologySignals, modelSummary, }: { airportMetarAnchor: boolean; confirmationRules: string[]; invalidationRules: string[]; locale: string; meteorologySignals: MeteorologySignal[]; modelSummary: string; }) { const fallbackInvalidationRule = locale === "en-US" ? "If observations stop tracking the expected curve, wait for the next refresh." : "若实测不再贴近预期曲线,等待下一次刷新确认。"; const fallbackConfirmationRule = locale === "en-US" ? airportMetarAnchor ? "Keep watching the next anchor METAR report." : "Keep watching the next official anchor observation." : airportMetarAnchor ? "继续观察下一次锚点 METAR 报文。" : "继续观察下一次官方锚点观测。"; return (
{locale === "en-US" ? "Evidence chain" : "气象证据链"}

{locale === "en-US" ? "Signal Contributions" : "信号贡献"}

{meteorologySignals.length > 0 ? ( meteorologySignals.map((signal, index) => (
{localizedText(locale, signal.label, signal.label_en) || "--"} {formatSignalDirection(signal.direction, locale)} ·{" "} {formatSignalStrength(signal.strength, locale)}

{localizedText(locale, signal.summary, signal.summary_en) || "--"}

)) ) : (
{locale === "en-US" ? "Meteorology signals are still loading." : "气象信号仍在加载。"}
)}
{locale === "en-US" ? "Failure modes" : "失效条件"}

{locale === "en-US" ? "What Downgrades the Read" : "什么会让判断降级"}

{locale === "en-US" ? "Confirmation" : "确认条件"}

{locale === "en-US" ? "What Confirms the Path" : "什么会确认主路径"}

{modelSummary}
); }