"use client" import React, { useEffect, useState } from 'react' export default function StatusOverview() { const [status, setStatus] = useState({ driftBalance: 0, activeTrades: 0, dailyPnL: 0, systemStatus: 'offline', bitqueryStatus: 'unknown', marketPrices: [], walletBalance: null, // Real wallet balance availableCoins: [] // Available coins in wallet }) const [loading, setLoading] = useState(true) useEffect(() => { async function fetchStatus() { try { setLoading(true) // Get real wallet balance let walletBalance = null let availableCoins = [] try { const walletRes = await fetch('/api/wallet/balance') if (walletRes.ok) { const walletData = await walletRes.json() if (walletData.success) { walletBalance = walletData.balance availableCoins = walletData.balance.positions || [] } } } catch (e) { console.warn('Could not fetch wallet balance:', e) } // Get market data from Bitquery let balance = walletBalance?.totalValue || 0 // Use real wallet balance let bitqueryStatus = 'error' let marketPrices = [] try { const marketRes = await fetch('/api/market') if (marketRes.ok) { const marketData = await marketRes.json() if (marketData.success) { marketPrices = marketData.data.prices || [] bitqueryStatus = marketData.data.status?.connected ? 'online' : 'error' } } } catch (e) { console.warn('Could not fetch market data:', e) } // Get system status let systemStatus = 'online' try { const statusRes = await fetch('/api/status') if (!statusRes.ok) { systemStatus = 'error' } } catch (e) { systemStatus = 'error' } setStatus({ driftBalance: balance, activeTrades: 0, // No fake trades - will show real ones when we have them dailyPnL: 0, // No fake P&L systemStatus: systemStatus, bitqueryStatus: bitqueryStatus, marketPrices: marketPrices, walletBalance: walletBalance, availableCoins: availableCoins }) } catch (error) { console.error('Error fetching status:', error) setStatus(prev => ({ ...prev, systemStatus: 'error' })) } setLoading(false) } fetchStatus() // Refresh every 30 seconds const interval = setInterval(fetchStatus, 30000) return () => clearInterval(interval) }, []) const statusColor = { online: 'text-green-400', offline: 'text-yellow-400', error: 'text-red-400' } const statusIcon = { online: '🟢', offline: '🟡', error: '🔴' } return (
${status.driftBalance.toFixed(2)}
Portfolio Value
{status.walletBalance.positions?.[0]?.amount?.toFixed(4) || '0.0000'} SOL
Wallet Balance
{status.activeTrades}
Active Trades
= 0 ? 'text-green-400' : 'text-red-400'}`}> {status.dailyPnL >= 0 ? '+' : ''}${status.dailyPnL.toFixed(2)}
Daily P&L