{{-- partials/pilot/next-move-hero.blade.php State-aware "Your Next Move" hero card. Rendered between the wins ticker and the wallet section on the dashboard. Required variables: $state -- string, one of: new | ictp | balance | following | followmulti | trader $data -- array, state-specific payload from PilotHeroStateService::forUser() CSS comes from public/pilot/dashboard.css (hero blocks already present in prototype; appended in deploy step). No state-visibility classes are emitted -- the server renders one state at a time. Routes assumed (verify before deploy): /complete-kyc -- KYC verification page /deposit-funds -- main deposit page /bid-marketplace -- manual trading marketplace /pilots -- pilot listing /pilots/{id} -- pilot profile / manage follow --}} @php $state = $state ?? 'ictp'; $data = $data ?? []; // Money formatters $fmtMoney = fn($v) => '$' . number_format((float) $v, 2, '.', ','); $fmtMoneySigned = fn($v) => ((float) $v > 0 ? '+' : '') . $fmtMoney($v); @endphp @switch($state) {{-- ───────────────────────────────────────────────────────────── STATE: NEW (KYC not verified) ───────────────────────────────────────────────────────────── --}} @case('new')
Get started

Start trading. Pick a Pilot.

Verified traders trade. You earn. Pick a Pilot, deposit USDT, withdraw anytime.

3 min USDT deposit
10% Fee on profits
No lockup Withdraw anytime
@break {{-- ───────────────────────────────────────────────────────────── STATE: ICTP (KYC done, $50 ICTP, no main balance) ───────────────────────────────────────────────────────────── --}} @case('ictp')
Your next move

Earn while a Pilot trades for you.

Deposit USDT, follow a verified Pilot, withdraw anytime. The Pilot does the work.

@break {{-- ───────────────────────────────────────────────────────────── STATE: BALANCE (main balance, no bids, no follows) ───────────────────────────────────────────────────────────── --}} @case('balance') @php $mainBal = (float) ($data['main_balance'] ?? 0); @endphp
You're ready

Pick a Pilot to start earning

Your {{ $fmtMoney($mainBal) }} is ready. Pilot Mode is the easiest way to put it to work. Trade markets manually if you prefer.

@break {{-- ───────────────────────────────────────────────────────────── STATE: FOLLOWING (exactly 1 active pilot follow) ───────────────────────────────────────────────────────────── --}} @case('following') @php $isEmpty = (bool) ($data['empty'] ?? false); $pilotId = (int) ($data['pilot_id'] ?? 0); $pilotName = $data['pilot_name'] ?? 'Pilot'; $pilotInitials = $data['pilot_initials'] ?? 'PT'; $pilotColor = $data['pilot_color'] ?? 'orange'; $today = (float) ($data['today_earnings'] ?? 0); $lifetime = (float) ($data['lifetime'] ?? 0); $lifetimeT = (int) ($data['lifetime_trades'] ?? 0); $winRate = $data['win_rate'] ?? null; $wallet = (float) ($data['wallet'] ?? 0); $sparkline = $data['sparkline'] ?? []; $totalTrades = (int) ($data['total_trades'] ?? 0); $since = $data['since'] ?? ''; // Build sparkline SVG path from data points $svgPath = ''; $fillPath = ''; if (count($sparkline) > 1 && $totalTrades > 0) { $w = 320; $h = 60; $pad = 6; $maxV = max($sparkline); $minV = min($sparkline); $range = max(0.0001, $maxV - $minV); $count = count($sparkline); $pts = []; foreach ($sparkline as $i => $v) { $x = ($i / ($count - 1)) * $w; $y = $h - $pad - (($v - $minV) / $range) * ($h - 2 * $pad); $pts[] = round($x, 1) . ',' . round($y, 1); } $svgPath = 'M' . implode(' L', $pts); $fillPath = $svgPath . ' L' . $w . ',' . $h . ' L0,' . $h . ' Z'; } @endphp
{{ $pilotInitials }}
Following
{{ $pilotName }}
Manage
Today's earnings
{{ $fmtMoneySigned($today) }}
@if ($totalTrades === 0) Active since {{ $since }} · waiting for first settlement @else Active since {{ $since }} @endif
Lifetime
{{ $fmtMoneySigned($lifetime) }}
{{ $lifetimeT }} {{ $lifetimeT === 1 ? 'trade' : 'trades' }}
Win rate
{{ $winRate !== null ? $winRate . '%' : '—' }}
your trades
Wallet
{{ $fmtMoney($wallet) }}
following amount
@if ($svgPath !== '')
@endif
@break {{-- ───────────────────────────────────────────────────────────── STATE: FOLLOWMULTI (2+ active pilot follows) ───────────────────────────────────────────────────────────── --}} @case('followmulti') @php $count = (int) ($data['follow_count'] ?? 0); $todayTotal = (float) ($data['today_total'] ?? 0); $lifeTotal = (float) ($data['lifetime_total'] ?? 0); $walletTotal = (float) ($data['wallets_total'] ?? 0); $rows = $data['rows'] ?? []; $totalTrades = (int) ($data['total_trades'] ?? 0); @endphp
Following {{ $count }} {{ $count === 1 ? 'pilot' : 'pilots' }}
{{ $fmtMoneySigned($todayTotal) }} @if ($totalTrades === 0) waiting for first settlement @else today across all pilots @endif
Lifetime {{ $fmtMoneySigned($lifeTotal) }} · Wallets {{ $fmtMoney($walletTotal) }}
Manage all
@break {{-- ───────────────────────────────────────────────────────────── STATE: TRADER (has bids, no active follows) ───────────────────────────────────────────────────────────── --}} @case('trader') @php $sessActive = (bool) ($data['session_active'] ?? false); $sessNum = $data['session_number'] ?? null; $marketsN = (int) ($data['markets_count'] ?? 0); @endphp
@if ($sessActive) Session {{ $sessNum }} active @else Sessions closed @endif
{{ $marketsN }} {{ $marketsN === 1 ? 'market' : 'markets' }} available
@break @endswitch