"use client"; import { useState, useEffect } from "react"; const KEYS = [ { id: "atlas_gemini_key", label: "Gemini API Key", placeholder: "AIza..." }, { id: "atlas_openai_key", label: "OpenAI API Key", placeholder: "sk-..." }, { id: "atlas_anthropic_key", label: "Anthropic API Key", placeholder: "sk-ant-..." }, ]; export default function SettingsPage() { const [values, setValues] = useState>({}); const [saved, setSaved] = useState(false); const [backendStatus, setBackendStatus] = useState<"checking" | "ok" | "error">("checking"); useEffect(() => { // Load from localStorage const loaded: Record = {}; KEYS.forEach((k) => { loaded[k.id] = localStorage.getItem(k.id) || ""; }); setValues(loaded); // Check backend health fetch("/api/health") .then((r) => r.ok ? setBackendStatus("ok") : setBackendStatus("error")) .catch(() => setBackendStatus("error")); }, []); function handleSave() { Object.entries(values).forEach(([key, val]) => { if (val) localStorage.setItem(key, val); else localStorage.removeItem(key); }); setSaved(true); setTimeout(() => setSaved(false), 2000); } return (

Settings

{/* Backend Status */}

System Status

Backend API: {backendStatus === "ok" ? "Connected" : backendStatus === "error" ? "Disconnected" : "Checking..."}
{/* API Keys */}

API Keys

{KEYS.map((k) => (
setValues({ ...values, [k.id]: e.target.value })} placeholder={k.placeholder} className="flex-1 bg-bg-primary border border-border rounded-md px-3 py-2 text-text-primary outline-none focus:border-accent-green transition-colors" />
))}
{/* Info */}

About

ATLAS Terminal v2.0 — Advanced Trading & Liquidity Analysis System

API keys are stored locally in your browser. They are never sent to our servers.

); }