© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•15mo ago•
1 reply
98.dev

How to open a filament modal using dispatch?

I have a page, that renders a table with a custom column:

Main.php
ViewColumn::make('services')
->label('Deadlines')
->view('filament.tables.columns.custom-column')
ViewColumn::make('services')
->label('Deadlines')
->view('filament.tables.columns.custom-column')


Within the custom column blade file, I have the following code:

CustomColumn.blade.php
@livewire('global-modal')

...

<td wire:click="$dispatch('openModal', { 
    id: {{ $record->id }}, 
    status: '{{ $status }}' 
})"
@livewire('global-modal')

...

<td wire:click="$dispatch('openModal', { 
    id: {{ $record->id }}, 
    status: '{{ $status }}' 
})"


Click the
<td>
<td>
should open the
global-modal
global-modal
component. Here is how it is defined:

GlobalModal.php
<?php

namespace App\Http\Livewire;

use Livewire\Component;

class GlobalModal extends Component
{
    public $modalData = [];

    protected $listeners = ['openModal' => 'handleOpenModal'];

    public function handleOpenModal()
    {
        $this->dispatch('open-modal', ['id' => 'global-modal']);
    }

    public function render()
    {
        return view('livewire.modals.global-modal');
    }
}
<?php

namespace App\Http\Livewire;

use Livewire\Component;

class GlobalModal extends Component
{
    public $modalData = [];

    protected $listeners = ['openModal' => 'handleOpenModal'];

    public function handleOpenModal()
    {
        $this->dispatch('open-modal', ['id' => 'global-modal']);
    }

    public function render()
    {
        return view('livewire.modals.global-modal');
    }
}


global-modal.blade.php
<x-filament::modal id="global-modal" width="xl">
    <x-slot name="heading">
        <h2>Modal Content</h2>
    </x-slot>
    <div>
        <!-- Display the modal data -->
        <pre>{{ json_encode($modalData, JSON_PRETTY_PRINT) }}</pre>
    </div>
</x-filament::modal>
<x-filament::modal id="global-modal" width="xl">
    <x-slot name="heading">
        <h2>Modal Content</h2>
    </x-slot>
    <div>
        <!-- Display the modal data -->
        <pre>{{ json_encode($modalData, JSON_PRETTY_PRINT) }}</pre>
    </div>
</x-filament::modal>


But when I click the button, the dispatch does nothing. No error are shown either.

I have confirmed the button works, by placing a
dd("hello")
dd("hello")
in the
handleOpenModal
handleOpenModal
function.

Could someone please assist where I am going wrong?
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Dispatch open modal with parameters
FilamentFFilament / ❓┊help
14mo ago
Dispatch open-modal not responding
FilamentFFilament / ❓┊help
3y ago
How to dispatch filament form data using blade $dispatch method
FilamentFFilament / ❓┊help
2y ago
Modal Dispatch
FilamentFFilament / ❓┊help
2y ago