"use client"; import { useEffect, useState } from "react"; type ExecutiveSnapshot = { revenue: { actual: number; forecast: number; variance_percent: number; pipeline_value: number; win_rate: number }; approvals: { pending: number; warning: number; breach: number }; connectors: { healthy: number; degraded: number; error: number }; compliance: { compliant: number; partial: number; non_compliant: number; posture: string }; contradictions: { active: number; critical: number }; strategic_deals: { active: number; pipeline_value: number }; evidence_packs: { ready: number; pending_review: number }; }; function MetricCard({ label, labelAr, value, status }: { label: string; labelAr: string; value: string | number; status?: string }) { const color = status === "danger" ? "text-red-500" : status === "warning" ? "text-yellow-500" : "text-emerald-500"; return (
{labelAr}
{label}
{value}
); } export function ExecutiveRoom() { const [snapshot, setSnapshot] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const fetchSnapshot = async () => { try { const apiUrl = process.env.NEXT_PUBLIC_API_URL || "http://localhost:8000"; const res = await fetch(`${apiUrl}/api/v1/executive-room/snapshot`); if (res.ok) setSnapshot(await res.json()); } catch { /* silent */ } setLoading(false); }; fetchSnapshot(); const interval = setInterval(fetchSnapshot, 30000); return () => clearInterval(interval); }, []); if (loading) return
جارٍ التحميل...
; const s = snapshot || { revenue: { actual: 0, forecast: 0, variance_percent: 0, pipeline_value: 0, win_rate: 0 }, approvals: { pending: 0, warning: 0, breach: 0 }, connectors: { healthy: 0, degraded: 0, error: 0 }, compliance: { compliant: 0, partial: 0, non_compliant: 0, posture: "unknown" }, contradictions: { active: 0, critical: 0 }, strategic_deals: { active: 0, pipeline_value: 0 }, evidence_packs: { ready: 0, pending_review: 0 }, }; return (

غرفة القيادة التنفيذية

Executive Room — نظرة شاملة على كل ما يحتاجه القائد التنفيذي

{/* Revenue */}

الإيرادات | Revenue

{/* Approvals & Compliance */}

الموافقات | Approvals

10 ? "warning" : undefined} /> 0 ? "warning" : undefined} /> 0 ? "danger" : undefined} />

الامتثال | Compliance

0 ? "warning" : undefined} /> 0 ? "danger" : undefined} />
{/* Connectors & Contradictions */}

الموصلات | Connectors

سليمة{s.connectors.healthy}
متراجعة{s.connectors.degraded}
معطلة{s.connectors.error}

التناقضات | Contradictions

نشطة{s.contradictions.active}
حرجة{s.contradictions.critical}

الصفقات الاستراتيجية | Strategic Deals

نشطة{s.strategic_deals.active}
قيمة الأنبوب{s.strategic_deals.pipeline_value.toLocaleString()} SAR
); }