TypeScript · 770 bytes Raw Blame History
1 interface SystemCardProps {
2 at: string;
3 text: string;
4 subtype: string | null;
5 }
6
7 export function SystemCard({ at, text, subtype }: SystemCardProps) {
8 return (
9 <div className="rounded border border-border/60 bg-bg-1/30 px-4 py-2 text-[12px]">
10 <div className="mb-1 flex items-center gap-2 text-[10px] uppercase tracking-wide text-fg-3">
11 <span>system</span>
12 {subtype && (
13 <>
14 <span></span>
15 <span>{subtype}</span>
16 </>
17 )}
18 <span></span>
19 <span>{formatAt(at)}</span>
20 </div>
21 <div className="text-fg-2">{text}</div>
22 </div>
23 );
24 }
25
26 function formatAt(iso: string): string {
27 try {
28 return new Date(iso).toLocaleString();
29 } catch {
30 return iso;
31 }
32 }