{{-- Flash Messages --}} @if (session()->has('success') || session()->has('error'))
{{ session('success') ?? session('error') }}
@endif @if($selectedTicket) {{-- VIEW: Single Ticket --}}
{{-- Mobile Overlay --}} {{-- Sidebar --}}

{{ __('creators-ticketing::resources.frontend.ticket_details') }}

{{-- Status --}}
{{ __('creators-ticketing::resources.frontend.status_label') }} {{ $selectedTicket->status->name }}
{{-- Info --}}

{{ __('creators-ticketing::resources.frontend.ticket_information') }}

{{ __('creators-ticketing::resources.frontend.department_label') }}
{{ $selectedTicket->department->name }}
{{ __('creators-ticketing::resources.frontend.created_at_label') }}
{{ $selectedTicket->created_at->format('M d, Y') }}
{{ __('creators-ticketing::resources.frontend.last_activity_label') }}
{{ $selectedTicket->last_activity_at ? \Carbon\Carbon::parse($selectedTicket->last_activity_at)->diffForHumans() : __('creators-ticketing::resources.frontend.just_now') }}
{{-- Custom Data --}} @if(!empty($selectedTicket->custom_fields))

{{ __('creators-ticketing::resources.frontend.form_data_label') }}

@foreach($selectedTicket->custom_fields as $key => $value) @continue(empty($value))
{{ str_replace('_', ' ', $key) }}
@php $isFileValue = is_array($value) && (empty($value) || (is_string(head($value)) && str_contains(head($value), 'ticket-attachments/'))); @endphp @if($isFileValue) @include('creators-ticketing::livewire.ticket-attachments-display', [ 'ticketId' => $selectedTicket->id, 'files' => is_array($value) ? $value : [$value], 'label' => null, ]) @elseif(is_array($value))
    @foreach($value as $item)
  • {{ is_string($item) ? $item : json_encode($item) }}
  • @endforeach
@else {{ $value }} @endif
@endforeach
@endif
{{-- Main Chat Area --}}

{{ $selectedTicket->title }}

#{{ $selectedTicket->ticket_uid }}
@livewire('creators-ticketing.public-ticket-chat', ['ticketId' => $selectedTicket->id], key('chat-'.$selectedTicket->id))
@else {{-- VIEW: List & Submit Form --}}
{{-- Main Scroll Area --}}
{{-- Tabs --}}
{{-- Main Card --}}
@if($showForm)

{{ __('creators-ticketing::resources.frontend.submit_ticket_title') }}

{{ __('creators-ticketing::resources.frontend.submit_ticket_desc') }}

{{-- Department & Category --}}
@error('department_id')

{{ $message }}

@enderror
@if(count($available_forms) > 1)
@error('form_id')

{{ $message }}

@enderror
@endif
{{ __('creators-ticketing::resources.frontend.loading_fields') }}
{{-- Dynamic Fields --}} @if(!empty($form_fields))
@foreach($form_fields as $field)
@switch($field['type']) @case('textarea') @break @case('select')
@break @case('radio')
@foreach($field['options'] ?? [] as $k => $v) @endforeach
@break @case('file') @case('file_multiple')
@php $isMultiple = $field['type'] === 'file_multiple'; $rulesString = $field['validation_rules'] ?? ''; preg_match('/mimes:([^|]+)/', $rulesString, $mimes); preg_match('/max:(\d+)/', $rulesString, $maxSize); preg_match('/max_files:(\d+)/', $rulesString, $maxFiles); $maxFilesCount = $maxFiles[1] ?? null; $accept = ''; if (!empty($mimes[1])) { $extensions = explode(',', $mimes[1]); $accept = implode(',', array_map(fn($ext) => '.' . trim($ext), $extensions)); } @endphp @if(isset($custom_fields[$field['name']]))
    @php $files = is_array($custom_fields[$field['name']]) ? $custom_fields[$field['name']] : [$custom_fields[$field['name']]]; @endphp @foreach($files as $index => $file) @if($file)
  • @if(method_exists($file, 'temporaryUrl') && in_array(strtolower($file->extension() ?? ''), ['jpg','jpeg','png','gif','webp'])) @else
    @endif
    {{ $file->getClientOriginalName() }} {{ number_format($file->getSize() / 1024, 1) }} KB
  • @endif @endforeach
@endif
@break @default @endswitch @error("custom_fields.{$field['name']}")

{{ $message }}

@enderror @error("custom_fields.{$field['name']}.*")

{{ $message }}

@enderror
@endforeach
@elseif($department_id && ($form_id || count($available_forms) <= 1))

{{ __('creators-ticketing::resources.frontend.no_form_title') }}

{{ __('creators-ticketing::resources.frontend.no_form_desc') }}

@endif
@else {{-- Ticket List View --}}
@if(count($userTickets) > 0)
    @foreach($userTickets as $ticket)
  • {{ $ticket->title }}

    @if($ticket->publicReplies->where('is_seen', false)->where('user_id', '!=', auth()->id())->count() > 0) {{ __('creators-ticketing::resources.frontend.new_reply') }} @endif
    {{ $ticket->status->name }}
    #{{ $ticket->ticket_uid }} {{ $ticket->department->name }}
    {{ $ticket->last_activity_at ? \Carbon\Carbon::parse($ticket->last_activity_at)->diffForHumans() : $ticket->created_at->diffForHumans() }}
  • @endforeach
@else

{{ __('creators-ticketing::resources.frontend.no_tickets_title') }}

{{ __('creators-ticketing::resources.frontend.no_tickets_desc') }}

@endif
@endif
@endif