FilamentF
Filament14mo ago
Jens

Close modal from a "extraModalFooterActions"

I have a table with a Filament\Tables\Actions\Action action that opens a modal. This modal also has a extraModalFooterActions action which works as expected. I want the modal to close when the extraModalFooterActions action is completed, how can I go about this?

I can't seem to find a way to give the modal a custom ID or retrieve the modals ID to be able to dispatch a close event.

This is my current code:

Tables\Actions\Action::make('edit-followup')->label(__('messages.table.action.followup.edit-followup'))
                    ->icon('heroicon-o-pencil-square')
                    ->before(function (Tables\Actions\Action $action, \App\Models\FollowUp $record) {
                        // Authorize the action
                        Gate::forUser(auth()->user())->authorize('update', $record);
                    })
                    ->modalContent(function(\App\Models\FollowUp $record) {
                        return view(
                            'followups.input',
                            [
                                'input' => $record->input,
                            ],
                        );
                    })
                    ->modalSubmitAction(false)
                    ->extraModalFooterActions(function ($action) {
                        return [
                            Tables\Actions\Action::make('save-form')->label(__('messages.table.action.followup.save-form'))
                                ->action(function(\App\Models\FollowUp $record) {
                                    $this->dispatch('vueform.submit.' . $record->input->id);
                                    // Close the modal here?
                                })
                                ->after(function() {
                                    // Close the modal here?
                                })
                        ];
                    }),
Was this page helpful?