{{-- HEADER --}}
Client Journey
@if($this->milestones->isEmpty())
No claim is linked to this client, so there is no journey to show yet.
@else
{{-- RAIL --}}
@foreach($this->milestones as $milestone)
@php
$prevComplete = $loop->index > 0
&& $this->milestones[$loop->index - 1]->isComplete();
$countdownColor = match ($milestone->state) {
'overdue', 'closed', 'cancelled' => 'text-danger',
'due_soon' => 'text-warning',
default => 'text-primary',
};
$tooltip = $milestone->label
. ($milestone->achievedAt
? ' · Completed ' . $milestone->achievedAt->format('d M Y')
: ' · ' . ucfirst(str_replace('_', ' ', $milestone->state)))
. ($milestone->achievedBy ? ' · by ' . $milestone->achievedBy : '')
. ($milestone->source ? ' · ' . $milestone->source : '');
@endphp
{{ $milestone->label }}
@if($milestone->achievedAt)
{{ $milestone->achievedAt->format('d M') }}
@elseif($milestone->countdown)
{{ $milestone->countdown }}
@endif
{{-- Terminal states truncate the rail: the story stopped here. --}}
@if($milestone->isTerminal())
@break
@endif
@endforeach
@endif
{{-- OFFCANVAS : FULL TIMELINE --}}