@extends('layouts.adminlte.adminlte') @section('title') {{ $displayName }} | {{ $conversationTitle }} @endsection @inject('chatHelper', 'App\Helpers\ChatHelper') @section('content')
@if($isObserver ?? false) @endif {{ $displayName }} | {{ $conversationTitle }} {{-- Ban Management Dropdown --}} @php $usersToManage = collect([$chat->agent, $chat->seller])->unique('id'); $canManageAny = false; foreach ($usersToManage as $u) { if ($chatHelper::canManageChatBan($u, auth()->user())) { $canManageAny = true; break; } } @endphp @if($canManageAny)
@endif
{{-- Ban Banner (only for agents/sellers) --}} @if(in_array(auth()->user()->user_type, ['agent', 'seller'])) @endif {{-- Admin/Manager Ban Info --}} @php $bannedParticipants = collect([$chat->agent, $chat->seller]) ->filter(function ($u) { return $u && $u->chat_banned; }) ->unique('id'); @endphp @foreach($bannedParticipants as $u) @if($chatHelper::canManageChatBan($u, auth()->user()))
{{ $u->name }} was banned @if($u->bannedBy) @php $bannerName = ($u->bannedBy->id === auth()->id()) ? 'Me' : $u->bannedBy->name; $bannerRole = ucfirst($u->bannedBy->user_type); @endphp by {{ $bannerName }} ({{ $bannerRole }}) @endif @if($u->chat_banned_at) on {{ $u->chat_banned_at->format('d M Y') }} at {{ $u->chat_banned_at->format('H:i') }} @endif .
@endif @endforeach {{-- Observer Info Banner --}} @if($isObserver ?? false) @endif
{{-- Load Older Messages Button --}}
@foreach($messages as $msg) @php if ($msg->sender_type === 'agent') { $msgSenderId = $msg->agent_id; } elseif ($msg->sender_type === 'seller') { $msgSenderId = $msg->seller_id; } else { // Extract ID from role:id (e.g. admin:13) $parts = explode(':', $msg->sender_type); $msgSenderId = (int) ($parts[1] ?? 0); } $isOwn = $msgSenderId == auth()->id(); $senderName = $senderNames[$msgSenderId] ?? 'Unknown'; $senderType = $senderTypes[$msgSenderId] ?? 'unknown'; $align = $isOwn ? 'text-right' : 'text-left'; // Color coding by user type if ($isOwn) { $bgStyle = 'background: rgba(108,117,125,0.15);'; // Gray for own messages } elseif ($senderType === 'admin') { $bgStyle = 'background: rgba(111,66,193,0.15);'; // Purple for admin } elseif ($senderType === 'manager') { $bgStyle = 'background: rgba(23,162,184,0.15);'; // Teal for manager } else { $bgStyle = 'background: rgba(0,123,255,0.15);'; // Blue for agent/seller } @endphp
{{ $senderName }} {{-- Edit/Delete Control --}} @if($isOwn && $msg->created_at->diffInMinutes(now()) < 3) @if(preg_match('/\[IMAGE:(.*?)\]/', $msg->message)) @else @endif @endif
@if(preg_match('/\[IMAGE:(.*?)\]/', $msg->message, $matches)) @else {{ $msg->message }}
@endif {{ $msg->created_at->format('d M Y H:i') }} @if($isOwn && ($isParticipant ?? true)) | @if($msg->read_at) Read {{ $msg->read_at->format('d M H:i') }} @else Sent @endif @endif @if(!$isParticipant && ($isObserver ?? false))
@if($msg->agent_read_at && $msgSenderId !== $chat->agent_id) {{ $chat->agent->name }} read at {{ $msg->agent_read_at->format('d M Y H:i') }}
@endif @if($msg->seller_read_at && $msgSenderId !== $chat->seller_id) {{ $chat->seller->name }} read at {{ $msg->seller_read_at->format('d M Y H:i') }} @endif
@endif
@endforeach
{{-- Message Form (render for participants and observers) --}} @if(($isParticipant ?? true) || ($isObserver ?? false)) @endif
@endsection @section('js') @parent @endsection