Skip to content

Notification Action dispatch() doesn't work with url() #15747

Open
@ahmedkandel

Description

@ahmedkandel

Package

filament/filament

Package Version

v3.2.141

Laravel Version

v11.43.0

Livewire Version

v3.5.20

PHP Version

PHP 8.3.16

Problem description

When adding an action Filament\Notifications\Actions\Action to a database notification with ->url(...) method to visit a record we need to close the notification though ->close() and all is working well., but we also need to close the notification modal using ->dispatch('close-modal', ['id' => 'database-notifications']) the modal closing is not working.

I have traced the issue and found that the notification serialization in the database is ok with (event, eventData, ...), but when rendering the notification action the $action->getLivewireClickHandler() is ignored as the action has $url

Expected behavior

dispatch should be independent from using action as or

Steps to reproduce

Action::make('view')
                ->url(Filament::getResourceUrl($this->record, 'view'))
                ->dispatch('close-modal', ['id' => 'database-notifications'])
                ->close()

Reproduction repository (issue will be closed if this is not valid)

https://github.com/tomorrowsystem/filament-comments

Relevant log output

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Todo

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions