/* global React, AURA_DATA */
const { useState, useEffect } = React;
const D = window.AURA_DATA;
const Icon = {
search: ,
bell: ,
dash: ,
trades: ,
history: ,
perf: ,
bot: ,
acct: ,
shield: ,
analytics: ,
user: ,
help: ,
play: ,
stop: ,
refresh: ,
settings: ,
download: ,
plus: ,
more: ,
x: ,
alert: ,
dollar: ,
target: ,
activity: ,
arrowUp: ,
arrowDown: ,
zap: ,
signal: ,
};
const SunIcon = ;
const MoonIcon = ;
function TopBar({ onNav, marketOpen, theme, onToggleTheme, user }) {
const initials = user ? user.name.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase() : "?";
return (
AURA
{Icon.search}
⌘K
XAUUSD {marketOpen ? "OPEN" : "CLOSED"}
•
24/5 · {marketOpen ? "Closes Fri 22:00 GMT" : "Opens Mon 00:00 GMT"}
onNav("profile")}>
{initials}
{user ? user.name.split(" ")[0] : "Account"}
);
}
function Sidebar({ active, onNav, balance, dayPnL, openCount }) {
const Item = ({ id, icon, children, count }) => (
onNav(id)}>
{icon}
{children}
{count != null && {count}}
);
return (
Overview
- Dashboard
- Analytics
Trading
- 0 ? openCount : null}>Active Trades
- Trade History
- Signal Log
- Performance
Configuration
- Bot Settings
- MT5 Accounts
- Risk Management
Account
- Profile
- Help & Docs
Balance
{balance != null ? "$" + balance.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : "—"}
Today P&L
= 0 ? "pos" : ""}`}>{D.fmtSigned(dayPnL || 0)}
Plan
FREE
);
}
function Tape() {
const t = [
{ s: "XAUUSD", p: "—", c: 0, sub: "Spot Gold" },
{ s: "DXY", p: "—", c: 0, sub: "Dollar Index" },
{ s: "US10Y", p: "—", c: 0, sub: "10Y Yield" },
{ s: "VIX", p: "—", c: 0, sub: "Volatility" },
{ s: "ATR(M15)", p: "—", c: 0, sub: "Avg True Range" },
{ s: "SPREAD", p: "—", c: 0, sub: "Live" },
];
const items = [...t, ...t];
return (
{items.map((it, i) => (
{it.s}
{it.p}
{it.sub}
))}
);
}
Object.assign(window, { TopBar, Sidebar, Tape, Icon });