@if(!$selectedUser)

GLETRA Web

Send and receive messages without keeping your phone online.
Use GLETRA on up to 4 linked devices.

@endif @php $unreadDividerShown = false; $lastDateKey = null; $messagesList = $messages->values(); @endphp @foreach($messagesList as $index => $message) @if($message->deleted_for_all && $message->sender_id != auth()->id()) @continue @endif @php $dateKey = $message->created_at->format('Y-m-d'); $dayLabel = null; if ($dateKey !== $lastDateKey) { $lastDateKey = $dateKey; $today = now()->format('Y-m-d'); $yesterday = now()->subDay()->format('Y-m-d'); if ($dateKey === $today) { $dayLabel = 'Today'; } elseif ($dateKey === $yesterday) { $dayLabel = 'Yesterday'; } elseif ($message->created_at->gt(now()->subDays(7))) { $dayLabel = $message->created_at->format('l'); } else { $dayLabel = $message->created_at->format('d F Y'); } } @endphp @if($dayLabel)
{{ $dayLabel }}
@endif @if(!$unreadDividerShown && ($firstUnreadId ?? null) === $message->id) @php $unreadDividerShown = true; @endphp
Unread messages
@endif @php $msgType = $message->effectiveType(); $isSent = $message->sender_id == auth()->id(); $hasSocialVideo = $msgType === 'text' && $message->message && \GletraChatBox\App\Support\SocialVideoParser::collect($message->message) !== []; $prevMessage = $index > 0 ? $messagesList[$index - 1] : null; $nextMessage = $messagesList[$index + 1] ?? null; $showSenderName = ! $prevMessage || $prevMessage->sender_id !== $message->sender_id; $showSenderAvatar = ! $nextMessage || $nextMessage->sender_id !== $message->sender_id; $senderName = $isSent ? 'You' : ($message->sender?->name ?? $selectedUser?->name ?? 'User'); $senderAvatar = $isSent ? auth()->user()->avatarUrl() : ($message->sender?->avatarUrl() ?? $selectedUser?->avatarUrl()); @endphp @php $canEdit = $message->sender_id == auth()->id() && $msgType === 'text' && ! $message->deleted_for_all && $message->created_at->gte(now()->subMinutes(15)); $copyText = $message->message ?: match ($msgType) { 'image' => 'Photo', 'video' => 'Video', 'voice', 'voice_note' => 'Voice message', 'sticker' => 'Sticker', 'gif' => 'GIF', 'status_reply' => 'Status reply', default => '', }; @endphp
{{ $senderName }}
sender_id != auth()->id() && !$message->seen) data-unread="1" @endif> @if($showSenderName) {{ $senderName }} @endif @if($message->forwarded_from_id)
Forwarded
@endif @if($message->replyTo) @php $replyType = $message->replyTo->effectiveType(); $replyThumb = $message->replyTo->thumbnailUrl() ?? (in_array($replyType, ['image', 'video', 'gif', 'sticker'], true) ? $message->replyTo->displayUrl() : null); @endphp
@if($replyThumb && in_array($replyType, ['image', 'video', 'gif', 'sticker'], true)) @if($replyType === 'video')@endif @elseif(in_array($replyType, ['voice', 'voice_note', 'audio'], true)) @elseif(in_array($replyType, ['document', 'file'], true)) @endif
{{ $message->replyTo->sender_id == auth()->id() ? 'You' : ($message->replyTo->sender?->name ?? '') }} {{ $message->replySnippet() }}
@endif @include('chat.partials.message-content', ['message' => $message]) @if($message->reactions->isNotEmpty())
@foreach($message->reactions->groupBy('emoji') as $emoji => $group) {{ $emoji }}{{ $group->count() > 1 ? $group->count() : '' }} @endforeach
@endif @if(! in_array($msgType, ['image', 'video'], true)) @include('chat.partials.msg-meta', ['message' => $message, 'msgType' => $msgType]) @endif
@endforeach