Fix brand colors and add API error handling per code review

Co-authored-by: blackboxprogramming <118287761+blackboxprogramming@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-05 20:21:45 +00:00
parent 415447c8a6
commit edc9360293
5 changed files with 15 additions and 9 deletions

View File

@@ -2,9 +2,9 @@
import Link from 'next/link'; import Link from 'next/link';
const GRADIENT = 'linear-gradient(90deg, #FF6B2B, #FF2255, #CC00AA, #8844FF, #4488FF, #00D4FF)'; const GRADIENT = 'linear-gradient(135deg, #F5A623, #FF1D6C, #9C27B0, #2979FF)';
const ACCENT_COLORS = ['#FF6B2B', '#FF2255', '#CC00AA', '#8844FF', '#4488FF', '#00D4FF']; const ACCENT_COLORS = ['#F5A623', '#FF1D6C', '#9C27B0', '#2979FF', '#F5A623', '#FF1D6C'];
const AGENTS = [ const AGENTS = [
{ {
@@ -82,7 +82,7 @@ const VALUES = [
{ {
num: '02', num: '02',
title: 'Contradictions are fuel', title: 'Contradictions are fuel',
body: 'K(t) = C(t) · e^(λ|δ_t|). We don\'t resolve contradictions — we harness them. Creative energy scales super-linearly with tension.', body: "K(t) = C(t) · e^(λ|δ_t|). We don't resolve contradictions — we harness them. Creative energy scales super-linearly with tension.",
}, },
{ {
num: '03', num: '03',
@@ -102,7 +102,7 @@ const VALUES = [
{ {
num: '06', num: '06',
title: 'The math is real', title: 'The math is real',
body: '317+ equations. Five novel frameworks. Peer-reviewable foundations. This isn\'t marketing — it\'s mathematics.', body: "317+ equations. Five novel frameworks. Peer-reviewable foundations. This isn't marketing — it's mathematics.",
}, },
]; ];

View File

@@ -3,7 +3,7 @@
import { useState } from 'react'; import { useState } from 'react';
import Link from 'next/link'; import Link from 'next/link';
const GRADIENT = 'linear-gradient(90deg, #FF6B2B, #FF2255, #CC00AA, #8844FF, #4488FF, #00D4FF)'; const GRADIENT = 'linear-gradient(135deg, #F5A623, #FF1D6C, #9C27B0, #2979FF)';
const SIDEBAR_SECTIONS = [ const SIDEBAR_SECTIONS = [
{ {

View File

@@ -2,7 +2,7 @@
import Link from 'next/link'; import Link from 'next/link';
const GRADIENT = 'linear-gradient(90deg, #FF6B2B, #FF2255, #CC00AA, #8844FF, #4488FF, #00D4FF)'; const GRADIENT = 'linear-gradient(135deg, #F5A623, #FF1D6C, #9C27B0, #2979FF)';
const PORTALS = [ const PORTALS = [
{ name: 'RoadWork', desc: 'AI tutoring that adapts to how you actually learn. Not how a textbook thinks you should.', tag: 'Education' }, { name: 'RoadWork', desc: 'AI tutoring that adapts to how you actually learn. Not how a textbook thinks you should.', tag: 'Education' },

View File

@@ -3,7 +3,7 @@
import { useState } from 'react'; import { useState } from 'react';
import Link from 'next/link'; import Link from 'next/link';
const GRADIENT = 'linear-gradient(90deg, #FF6B2B, #FF2255, #CC00AA, #8844FF, #4488FF, #00D4FF)'; const GRADIENT = 'linear-gradient(135deg, #F5A623, #FF1D6C, #9C27B0, #2979FF)';
const PLANS = [ const PLANS = [
{ {

View File

@@ -3,7 +3,7 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import Link from 'next/link'; import Link from 'next/link';
const GRADIENT = 'linear-gradient(90deg, #FF6B2B, #FF2255, #CC00AA, #8844FF, #4488FF, #00D4FF)'; const GRADIENT = 'linear-gradient(135deg, #F5A623, #FF1D6C, #9C27B0, #2979FF)';
const AGENTS_STATIC = [ const AGENTS_STATIC = [
{ name: 'alice', role: 'Gateway', status: 'active', mem: '2.4TB', uptime: '347d', load: 34 }, { name: 'alice', role: 'Gateway', status: 'active', mem: '2.4TB', uptime: '347d', load: 34 },
@@ -68,6 +68,7 @@ export default function StatusPage() {
const [agents] = useState<AgentRow[]>(AGENTS_STATIC); const [agents] = useState<AgentRow[]>(AGENTS_STATIC);
const [events] = useState<EventRow[]>(EVENTS_STATIC); const [events] = useState<EventRow[]>(EVENTS_STATIC);
const [live, setLive] = useState(false); const [live, setLive] = useState(false);
const [fetchError, setFetchError] = useState(false);
useEffect(() => { useEffect(() => {
fetch('/api/status') fetch('/api/status')
@@ -83,7 +84,7 @@ export default function StatusPage() {
setLive(true); setLive(true);
} }
}) })
.catch(() => {}); .catch(() => { setFetchError(true); });
}, []); }, []);
const allOperational = services.every(s => s.status === 'operational'); const allOperational = services.every(s => s.status === 'operational');
@@ -116,6 +117,11 @@ export default function StatusPage() {
<main className="max-w-6xl mx-auto px-6 py-12 space-y-12"> <main className="max-w-6xl mx-auto px-6 py-12 space-y-12">
{/* overall status */} {/* overall status */}
{fetchError && (
<div className="text-xs text-yellow-500 bg-yellow-500/10 border border-yellow-500/20 px-4 py-3 rounded-xl">
Unable to reach live API showing last known state
</div>
)}
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<span <span
className="w-3 h-3 rounded-full" className="w-3 h-3 rounded-full"