@php $barAccents = ['#185FA5', '#2D6A0F', '#8A5200']; $inviteQuotaWarn = ($stats['invite_quota_limit'] ?? 0) > 0 && ($stats['invite_quota_used'] ?? 0) >= ($stats['invite_quota_limit'] ?? 0); $aiQuotaWarn = ($stats['ai_reply_quota_limit'] ?? 0) > 0 && ($stats['ai_replies'] ?? 0) >= ($stats['ai_reply_quota_limit'] ?? 0); @endphp
Results
{{ $stats['period_label'] ?? '' }}
{{-- Filter bar --}}
@foreach([ 'today' => 'Today', 'this_week' => 'This week', 'this_month' => 'This month', 'all_time' => 'All time', ] as $key => $label) @endforeach
@if($dateRange === 'custom')
to
@endif
{{-- Tiles --}}
Invites
{{ number_format($stats['sent']) }}
@if(($stats['invite_quota_limit'] ?? 0) > 0)
{{ number_format($stats['invite_quota_used'] ?? 0) }} / {{ number_format($stats['invite_quota_limit']) }} free
@endif @if(($stats['upcoming'] ?? 0) > 0)
{{ number_format($stats['upcoming']) }} upcoming
@endif
Clicks
{{ number_format($stats['clicked']) }}
{{ $stats['click_pct_of_invites'] }}% of invites
Reviews
{{ number_format($stats['reviews']) }}
{{ $stats['review_pct_of_clicks'] }}% of clicks
AI replies
{{ number_format($stats['ai_replies']) }}
@if(($stats['ai_reply_quota_limit'] ?? 0) > 0)
{{ number_format($stats['ai_replies']) }} / {{ number_format($stats['ai_reply_quota_limit']) }} free
@endif
{{-- Top questions --}}
Top questions
@if($canOpenEmailPreview) @else Select a business to edit invite email @endif
@if(count($stats['top_questions'] ?? []) > 0)
@foreach($stats['top_questions'] as $i => $question) @php $accent = $barAccents[$i % count($barAccents)]; @endphp
{{ $question['question'] }}
{{ number_format($question['clicks']) }} clicks ยท {{ number_format($question['reviews']) }} reviews
@endforeach
@else
@if($canOpenEmailPreview) Set up rotating invite questions in Review invite email. @else Select a business to see question performance, or send invites to populate stats. @endif
@endif
{{-- Recent activity --}}
Recent activity
@if($activity && $activity->count() > 0) @if($showBusiness) @else @endif @foreach($activity as $invite) @php $row = $mapActivityRow($invite); @endphp @if($showBusiness) @endif @endforeach
Business CustomerCustomerAppointment Sent Clicked Reviews
{{ $row['business_name'] }}
{{ $row['name'] }}
{{ $row['email'] }}
{{ $row['appointment'] }}
@if($row['is_upcoming']) Upcoming @endif
@if($row['is_upcoming']) โ€” @else @include('livewire.dashboard.partials.invite-stat-badge', ['value' => $row['sent_badge']]) @endif @if($row['is_upcoming']) โ€” @else @include('livewire.dashboard.partials.invite-stat-badge', ['value' => $row['click_badge']]) @endif @if($row['is_upcoming']) โ€” @else @include('livewire.dashboard.partials.invite-stat-badge', ['value' => $row['review_badge']]) @endif
{{ $activity->links() }} @else
No invite activity for this period yet.
@endif
@if($showEmailPreview && $canOpenEmailPreview && $selectedEncodedBusinessId) @endif