@php $pageTitle = __('messages.dashboard.leads_dashboard'); @endphp @include('dashboard.partials.head', ['pageTitle' => $pageTitle])
@include('dashboard.partials.sidebar')

{{ __('messages.dashboard.leads_dashboard') }}

@if(!($pushConfig['beams_server_ready'] ?? true))
Background push is not configured. Add PUSHER_BEAMS_SECRET_KEY to .env (Pusher → Beams → Credentials). In-tab alerts still work via Pusher Channels when the dashboard is open.
@endif @php $listFilters = array_filter([ 'tab' => ($tab ?? 'all') !== 'all' ? ($tab ?? 'all') : null, 'market' => $market ?: null, 'range' => $dateRange, 'search' => $search ?: null, 'source' => $source ?? null, 'referral' => $referral ?? null, ], fn ($value) => filled($value)); $hasActiveFilters = $search || $status || ($market ?? '') || $dateRange !== '30' || ($source ?? '') || ($referral ?? '') || (($tab ?? 'all') !== 'all'); $activeTab = $tab ?? 'all'; @endphp
@if($activeTab === 'quotes')

{{ __('messages.dashboard.tab_quotes_hint') }}

@endif
@if(($tab ?? 'all') !== 'all') @endif @if($source ?? false) @endif @if($referral ?? false) @endif
@if($hasActiveFilters) {{ __('messages.dashboard.clear') }} @endif
@if(($source ?? '') || ($referral ?? '')) @endif
@if(session('success'))
{{ session('success') }}
@endif
@forelse($leads as $lead) @php $sourceLabel = \App\Helpers\LeadTrackingEnrichment::referralSourceLabel($lead->utm_source, $lead->referrer_domain); $deviceLabel = $lead->device_type ? ucfirst($lead->device_type) : ''; @endphp
{{-- Header --}}
{{ $lead->name ? strtoupper(substr($lead->name, 0, 2)) : '?' }}
{{ __('messages.dashboard.status_' . $lead->status) }} {{ $lead->form_completion_percentage }}% {{ __('messages.dashboard.label_completion') }} @if($lead->isQuoteLead()) {{ __('messages.dashboard.badge_quote') }} @endif @if($lead->hasContactActivity() && $lead->isQuoteLead()) {{ __('messages.dashboard.badge_quote_contact') }} @endif
@if($lead->isQuoteLead() && ($lead->quote_completion_percentage ?? 0) > 0)

{{ __('messages.dashboard.quote_progress', ['percent' => $lead->quote_completion_percentage, 'step' => $lead->quote_step ?: '—']) }}

@endif @if($lead->email) {{ $lead->email }} @elseif($lead->phone) {{ $lead->phone }} @else

{{ __('messages.dashboard.no_email_yet') }}

@endif
@if($lead->message)

{{ Str::limit(preg_replace('/\s+/', ' ', trim($lead->message)), 140) }}

@endif {{-- Meta chips --}}
{{ __('messages.dashboard.market_' . $lead->market) }} @if($lead->service_name) @php $displayServices = \App\Helpers\LeadTrackingHelper::formatContactServices($lead->service_name, $lead->locale); @endphp {{ $displayServices }} @endif @if($lead->estimated_price_min && $lead->estimated_price_max) €{{ number_format((float) $lead->estimated_price_min, 0) }}–€{{ number_format((float) $lead->estimated_price_max, 0) }} @endif {{ $sourceLabel }} @if($deviceLabel) {{ $deviceLabel }} @endif
{{-- Action bar --}}
{{ __('messages.dashboard.view_lead') }} @if($lead->email) @endif @if($lead->phone) @endif
@empty

{{ __('messages.dashboard.no_leads_found') }}

{{ __('messages.dashboard.no_leads_message') }}

@endforelse
@if($leads->hasPages())
{{ $leads->withQueryString()->links() }}
@endif
{{-- Pusher Beams (background push) + Pusher Channels (in-tab realtime) --}} @include('dashboard.partials.mobile-nav')