Tables\Actions\Action::make('viewDetails')
->slideOver()
->form([
RichEditor::make('response')
->name('response')
->label('')
->required()
->afterStateUpdated(fn($state) => session()->put('response', $state))
->visible(fn($record) => !TicketService::isTicketClosed($record)),
])
->label('Details')
->icon('heroicon-o-eye')
->modalHeading(fn($record) => "#$record->id: $record->name ({$record->status->name})")
->modalContent(fn($record) => view('filament.actions.view-ticket-description', [
'owner' => $record->user->name,
'subject' => $record->name,
'description' => $record->description,
'time' => $record->formattedDate,
'responses' => $record->responses()->with(['user', 'agent'])->get(),
'copiedUsers' => $record->copiedUsers()->get(),
'agents' => $record->agents()->with('user')->get(),
]))
->modalSubmitAction(false)
->extraModalFooterActions([
Action::make('sendResponse')
->label('Send')
->color('primary')
->action(function ($record) {
if (!TicketService::validateResponse()) return;
TicketService::createTicketResponse($record);
TicketService::sendNotification("Ticket updated", "Your response to ticket #$record->id was sent.");
})
->visible(fn($record) => !TicketService::isTicketClosed($record)),
])
->closeModalByClickingAway(false),
Tables\Actions\Action::make('viewDetails')
->slideOver()
->form([
RichEditor::make('response')
->name('response')
->label('')
->required()
->afterStateUpdated(fn($state) => session()->put('response', $state))
->visible(fn($record) => !TicketService::isTicketClosed($record)),
])
->label('Details')
->icon('heroicon-o-eye')
->modalHeading(fn($record) => "#$record->id: $record->name ({$record->status->name})")
->modalContent(fn($record) => view('filament.actions.view-ticket-description', [
'owner' => $record->user->name,
'subject' => $record->name,
'description' => $record->description,
'time' => $record->formattedDate,
'responses' => $record->responses()->with(['user', 'agent'])->get(),
'copiedUsers' => $record->copiedUsers()->get(),
'agents' => $record->agents()->with('user')->get(),
]))
->modalSubmitAction(false)
->extraModalFooterActions([
Action::make('sendResponse')
->label('Send')
->color('primary')
->action(function ($record) {
if (!TicketService::validateResponse()) return;
TicketService::createTicketResponse($record);
TicketService::sendNotification("Ticket updated", "Your response to ticket #$record->id was sent.");
})
->visible(fn($record) => !TicketService::isTicketClosed($record)),
])
->closeModalByClickingAway(false),