How to update Filament View dispatching from a Livewire Component?

I've created a new component and used it inside a Filament View. I've set up a listener on the ClientView as shown below: protected $listeners = [ 'refreshViewClient' => '$refresh' ]; And I'm calling $this->dispatch('refreshViewClient'); But for some reason, this specific component is not updating along with the entire screen. For example, within the Header, I have a custom component where I call it as mentioned above, and it works perfectly. However, inside this particular component, it's not working. This issue occurs whether I try to update the component -> view or view -> component; neither works.
Solution:
Solved. The problem was because I were getting my action inside another component. So I added:...
Jump to solution
5 Replies
leoblanski
leoblanski3mo ago
No description
No description
leoblanski
leoblanski3mo ago
It seems like my main view doesn't have access to activities and vice versa to updating state... I also tried to create a refresh listener inside my Livewire component. protected $listeners = [ 'refreshActivity' => '$refresh', ]; And call: $this->dispatch('refreshActivity'); It works in some places but on "Send Email" for example, which is also a Livewire component, it doesn't work.
leoblanski
leoblanski3mo ago
Example:
No description
leoblanski
leoblanski3mo ago
I've posted to https://gist.github.com/leoblanski/8287dafe55270d038a85f1160a84e581 The problem is with SendEmailAction. Badge for example is also an LW component but it works.
Solution
leoblanski
leoblanski3mo ago
Solved. The problem was because I were getting my action inside another component. So I added: public function getEmailAction() { return app(SendEmailAction::class) ->mount($this->record, 'client') ->sendEmailAction() ->after(function () { $this->dispatch('refreshActivity'); }); }