sadar / frontend /src /components /AlertBanner.tsx
Ruperth's picture
feat: polish mobile responsive layout across all dashboard screens
96bba34
Raw
History Blame Contribute Delete
1.03 kB
import { useT } from "../i18n";
interface Props {
scores: number[];
stepThreshold: number;
latency?: number | null;
}
export default function AlertBanner({ scores, stepThreshold, latency }: Props) {
const t = useT();
const peak = scores.length ? Math.max(...scores) : 0;
const alert = peak >= stepThreshold;
return (
<div
className="panel"
style={{
padding: "14px 18px",
borderColor: alert ? "var(--alert)" : "var(--normal)",
display: "flex",
justifyContent: "space-between",
alignItems: "center",
}}
>
<span
className={alert ? "status-alert" : "status-normal"}
style={{ fontSize: 18, letterSpacing: "0.24em" }}
>
{alert ? t.alert.alert : t.alert.nominal}
</span>
<span className="label">
{t.alert.peak} {peak.toFixed(3)} / {t.alert.threshold} {stepThreshold.toFixed(3)}
{alert && latency != null ? ` / ${t.alert.latency} ${latency.toFixed(0)}s` : ""}
</span>
</div>
);
}