Add native gameplay outcomes, recovery verification, and realm diagnostics
Core tests / core (push) Successful in 40s
Core tests / core (push) Successful in 40s
This commit is contained in:
@@ -7,8 +7,8 @@ type Activity={name:string;zone:string;action:string;label:string;detail:string;
|
||||
type Insights={collectedAt:number|null;startedAt:number|null;nextReportAt:number;current:Report;reports:Report[];activity:Activity[]};
|
||||
const stamp=(at:number|null)=>at?new Date(at*1000).toLocaleString():'Not yet observed';
|
||||
const metrics:Record<string,string>={levels:'Levels gained',deaths:'Verified deaths',arrivals:'First arrivals',conversations:'Bot exchanges',bonds:'New positive bonds',parties:'Party invitations',recruits:'Guild admissions',guild:'Guild goal progress',recoveries:'Recovery attempts'};
|
||||
export function RealmInsights({mode}:{mode:string}){
|
||||
const [data,setData]=useState<Insights|null>(null),[error,setError]=useState(''),[selected,setSelected]=useState('current'),[query,setQuery]=useState(''),[attention,setAttention]=useState(false);
|
||||
export function RealmInsights({mode,initialQuery=''}:{mode:string;initialQuery?:string}){
|
||||
const [data,setData]=useState<Insights|null>(null),[error,setError]=useState(''),[selected,setSelected]=useState('current'),[query,setQuery]=useState(initialQuery),[attention,setAttention]=useState(false);
|
||||
useEffect(()=>{let stopped=false;const poll=async()=>{try{const r=await fetch('/api/realm-insights');if(!r.ok)throw new Error('Insights temporarily unavailable');const d=await r.json() as Insights;if(!stopped){setData(d);setError('');}}catch(e){if(!stopped)setError(e instanceof Error?e.message:'Unable to load insights');}};void poll();const timer=setInterval(poll,15000);return()=>{stopped=true;clearInterval(timer);};},[]);
|
||||
if(!data)return <div className="empty-note" role="status">{error||'Loading realm observations…'}</div>;
|
||||
const report=selected==='current'?data.current:data.reports.find(r=>String(r.start)===selected)??data.current;
|
||||
|
||||
Reference in New Issue
Block a user