@php use Illuminate\Support\Carbon; // Helper function for parsing mentions function parseMentions($text) { return preg_replace('/@(\w+)/', '@$1', e($text)); } $user = auth()->user(); $meId = (int) $user->id; $role = $user->membership_status ?? $user->role ?? 'member'; switch ($role) { case 'super-admin': $layout = 'layouts.superadmin'; break; case 'advisor': $layout = 'layouts.advisor'; break; case 'admin': case 'moderator': $layout = 'layouts.moderator'; break; default: $layout = 'layouts.member'; } $pollUrl = route('group_chat.poll'); $sendUrl = route('group_chat.send'); $typingUrl = route('group_chat.typing'); $reactUrl = route('group_chat.react'); $lastId = (int) ($lastId ?? ($messages->max('id') ?? 0)); $othersReadId = (int) ($lastReadId ?? 0); // Group messages by date $messagesGroupedByDate = []; foreach ($messages as $msg) { $date = Carbon::parse($msg->created_at)->format('Y-m-d'); if (!isset($messagesGroupedByDate[$date])) { $messagesGroupedByDate[$date] = []; } $messagesGroupedByDate[$date][] = $msg; } // $teamMembers is already passed from the controller with proper filtering // DO NOT override it here - the controller filters for online active users only @endphp @extends($layout) @section('title', 'Group Chat') @push('head') @endpush @section('content')
{{-- Enhanced Typing Indicator --}} {{-- Scroll to Bottom FAB --}}
{{-- Message Context Menu --}}
↩️ رد
😀 نسخ
😀 تفاعل
➡️ إعادة توجيه
😀 تثبيت
إضافة لنجمة
😀 إبلاغ
{{-- Emoji Picker for Reactions --}}
اختر تفاعل
{{-- Message Status Modal - WhatsApp Design --}} {{-- Password Protection Modal --}}
{{-- Settings Panel Modal --}}
@push('scripts') {{-- Include Theme Toggle JavaScript FIRST --}} {{-- Include Chat Features JavaScript SECOND --}} @endpush
التفاعلات
جاري التحميل...