- {/* Alert banner β breaks grid monotony for critical states */}
{alerts.length > 0 && (
@@ -125,9 +151,13 @@ export default function StatusPage() {
{alerts.map((alert, i) => (
-
{alert.message}
+
+ {alert.message}
+
{alert.detail && (
-
{alert.detail}
+
+ {alert.detail}
+
)}
))}
@@ -136,32 +166,41 @@ export default function StatusPage() {
)}
-
+
{items.map(({ icon: Icon, label, value, badgeText, badgeVariant }) => (
-
-
+
+
{label}
-
+
-
- {value}
+
+ {value}
+
- {badgeText && (
-
- {badgeVariant === "success" && (
-
- )}
- {badgeText}
-
- )}
-
- |
+ {badgeText && (
+
+ {badgeVariant === "success" && (
+
+ )}
+ {badgeText}
+
+ )}
+
))}
-
+
{platforms.length > 0 && (
-
+
)}
{activeSessions.length > 0 && (
@@ -169,7 +208,9 @@ export default function StatusPage() {
-
{t.status.activeSessions}
+
+ {t.status.activeSessions}
+
@@ -181,7 +222,9 @@ export default function StatusPage() {
>
- {s.title ?? t.common.untitled}
+
+ {s.title ?? t.common.untitled}
+
@@ -190,7 +233,11 @@ export default function StatusPage() {
- {(s.model ?? t.common.unknown).split("/").pop()} Β· {s.message_count} {t.common.msgs} Β· {timeAgo(s.last_active)}
+
+ {(s.model ?? t.common.unknown).split("/").pop()}
+ {" "}
+ Β· {s.message_count} {t.common.msgs} Β·{" "}
+ {timeAgo(s.last_active)}
@@ -204,7 +251,9 @@ export default function StatusPage() {
- {t.status.recentSessions}
+
+ {t.status.recentSessions}
+
@@ -215,10 +264,16 @@ export default function StatusPage() {
className="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 border border-border p-3 w-full"
>
- {s.title ?? t.common.untitled}
+
+ {s.title ?? t.common.untitled}
+
- {(s.model ?? t.common.unknown).split("/").pop()} Β· {s.message_count} {t.common.msgs} Β· {timeAgo(s.last_active)}
+
+ {(s.model ?? t.common.unknown).split("/").pop()}
+ {" "}
+ Β· {s.message_count} {t.common.msgs} Β·{" "}
+ {timeAgo(s.last_active)}
{s.preview && (
@@ -228,7 +283,10 @@ export default function StatusPage() {
)}
-
+
{s.source ?? "local"}
@@ -249,7 +307,9 @@ function PlatformsCard({ platforms, platformStateBadge }: PlatformsCardProps) {
- {t.status.connectedPlatforms}
+
+ {t.status.connectedPlatforms}
+
@@ -259,7 +319,12 @@ function PlatformsCard({ platforms, platformStateBadge }: PlatformsCardProps) {
variant: "outline" as const,
label: info.state,
};
- const IconComponent = info.state === "connected" ? Wifi : info.state === "fatal" ? AlertTriangle : WifiOff;
+ const IconComponent =
+ info.state === "connected"
+ ? Wifi
+ : info.state === "fatal"
+ ? AlertTriangle
+ : WifiOff;
return (
-
+
- {name}
+
+ {name}
+
{info.error_message && (
- {info.error_message}
+
+ {info.error_message}
+
)}
{info.updated_at && (
@@ -290,7 +361,10 @@ function PlatformsCard({ platforms, platformStateBadge }: PlatformsCardProps) {
-
+
{display.variant === "success" && (
)}
@@ -306,5 +380,8 @@ function PlatformsCard({ platforms, platformStateBadge }: PlatformsCardProps) {
interface PlatformsCardProps {
platforms: [string, PlatformStatus][];
- platformStateBadge: Record;
+ platformStateBadge: Record<
+ string,
+ { variant: "success" | "warning" | "destructive"; label: string }
+ >;
}