-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Header action of table open modal only after 2 (two) clicks #12887
Comments
Hey @joao-antonio-gomes! We're sorry to hear that you've hit this issue. 💛 However, it looks like you forgot to fill in the reproduction repository URL. Can you edit your original post and then we'll look at your issue? We need a public GitHub repository which contains a Laravel app with the minimal amount of Filament code to reproduce the problem. Please do not link to your actual project, what we need instead is a minimal reproduction in a fresh project without any unnecessary code. This means it doesn't matter if your real project is private / confidential, since we want a link to a separate, isolated reproduction. That would allow us to download it and review your bug much easier, so it can be fixed quicker. Please make sure to include a database seeder with everything we need to set the app up quickly. |
Thank you for providing reproduction steps! Reopening the issue now. |
Same issue here, in my case, I was experiencing this on a custom resource page. There are no tables on the page, but I am using header actions. I think this started happening in the past week or so. |
I'm noticing other bugs and I think this is happening because I'm nesting forms. |
I spent a long time debugging this over the weekend, it turned out (in my case, anyway) the issues were caused by a single Everything was keyed correctly and I followed the docs exactly, but for some reason the moment the |
Hello, |
Hello,
On first click in modal table actions it only reload list component and on a second click it works. |
Thanks to a generous individual, this issue has been donated to. That has allowed me to investigate a fix this morning. Historically, we have told users that nesting tables within forms is not supported. HTML does not allow Now that Livewire's teleport feature is stable, we can give the fix another go. However, it is a bit of a risky change to make and could break some form components. Therefore, I have made a pre-release: https://github.com/filamentphp/filament/releases/tag/v3.2.87-beta1 Please follow the release instructions linked above to test the feature, and report back to me if any of your modals do not behave correctly anymore. |
Hi @danharrin , thanks for the fix, I just tested it and it work correctly. Great work ! Thanks. |
It mostly works great! But some custom components could be broken by this change, so I'm going to put it into v4 instead, which should be released in the next few months. |
it works, yes! |
@danharrin Can you release v4 beta with this fix and the other fixes from v3 ? |
Unfortunately not, it is currently too early and v4 is not documented enough, it would create hell to support users with. |
Ok, if you tag some experimental release i will be happy to report. This fix is important for me, so i will need to stick with some version with it. |
You could publish the modals.blade.php in your app and keep updating as usual |
I have the same issue in a form with 2 tabs. "effects": {
"returns": [
null
],
"html": ...
"dispatches": [
{
"name": "open-modal",
"params": {
"id": "GMh3szo4sJH0brD1km1C-table-action"
}
}
]
} No JS errors in debugger. Second click is OK with modal. Form in Resource: public static function form(Form $form): Form
{
$columns = static::getFields('form');
return $form
->schema([
Forms\Components\Tabs::make()
->tabs([
Forms\Components\Tabs\Tab::make(__('company.basic_info'))
->schema($columns)
->columns(static::getFormColspan()),
Forms\Components\Tabs\Tab::make(__('company.connected_customers'))
->schema([
Forms\Components\Livewire::make('connected-customers')
->label(__('company.connected_customers'))
->component('connected-customers')
->columns(static::getFormColspan()),
])
])
->columnSpanFull()
]);
} Livewire component: <?php
namespace App\Livewire;
use App\Models\CustomerCompanyAssigns;
use App\Models\Customers;
use Filament\Forms\Components\Select;
use Filament\Forms\Concerns\InteractsWithForms;
use Filament\Forms\Contracts\HasForms;
use Filament\Tables\Actions\Action;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Table;
use Livewire\Component;
class ConnectedCustomers extends Component implements HasForms, HasTable
{
use InteractsWithTable;
use InteractsWithForms;
public function table(Table $table): Table
{
return $table
->query(CustomerCompanyAssigns::query()->with('getCustomersCustomer'))
->columns([
TextColumn::make('getCustomersCustomer.full_name')
->label(__('company.first_name'))
->description(function($record){
return $record->getCustomersCustomer->email . ' / ' . $record->getCustomersCustomer->phone;
}),
TextColumn::make('contact_person')
->label(__('company.contact')),
TextColumn::make('contact_person_email')
->label(__('company.email')),
TextColumn::make('contact_person_phone')
->label(__('company.phone')),
TextColumn::make('approved_at')
->label(__('company.approved_at'))
->formatStateUsing(function($state): string {
return $state ? 'success' : 'danger';
}),
IconColumn::make('admin')
->label(__('company.admin'))
->boolean()
])
->filters([
// ...
])
->actions([
Action::make('approve')
->icon('heroicon-o-check')
->label('')
->button()
->color('success'),
Action::make('decline')
->icon('heroicon-o-x-mark')
->label('')
->button()
->color('danger')
])
->headerActions([
Action::make(__('company.connect_customer'))
->form([
Select::make('customer_id')
->label(__('company.customer_ref'))
->options(Customers::all()->pluck('full_name', 'id'))
->required(),
])
->icon('heroicon-o-plus-circle')
->action(function (array $data, CustomerCompanyAssigns $assign):void {
// ...
})
])
->bulkActions([
// ...
])
->searchable();
}
public function render()
{
return view('livewire.connected-customers');
}
} Filament Version Laravel Version Livewire Version PHP Version |
I encountered this issue today as well. This is my "stack": Resource View Page (Orders) The "double click"-issue occurs with my Section Header Actions |
Edit: it works |
@peter-mw interesting, because for me the fix from the beta worked fine 🤔 |
Edit: it works !! I just haven't loaded the new blade properly |
I'm having a similar issue but i do get error on my console:
|
@danharrin the issue appears again in version |
maybe as temporary solution you can add |
I don't think I pushed anything to v3 to fix this in the first place. |
Same here. How can we temporarily fix this until v4? |
@danielreales7 Try not to use |
I'm experiencing the same issue. Is there a current fix until V4 is released? |
HI @danielreales7
Let me know if this work for you. |
Package
filament/filament
Package Version
v3.2.0
Laravel Version
v11.0
Livewire Version
v3.4
PHP Version
PHP 8.3.0
Problem description
I need to click a second time to modal open.
After the modal finally opens, the modal did not close if I click away (expected behavior), only if I click on close/cancel, it's nice!
But, if I try to open modal again (without refresh), now modal open on 1st click and close if I click away (I did not expect this behavior, I'm not using closeModalByClickingAway property
If I add the closeModalByClickingAway property, reload page and try to click away on 1st open, modal wont close
Expected behavior
Open modal after click once on action button header
Steps to reproduce
php artisan make:livewire-table UserTable --generate
php artisan make:form-layout UserForm
php artisan make:filament-resource User --generate
If I put the table to a page, works like a charm, but inside a Tab on a form doesnt work.
2024-05-21.14-58-43.mov
Reproduction repository
https://github.com/joao-antonio-gomes/laravel-playground
Relevant log output
No response
Donate 💰 to fund this issue
The text was updated successfully, but these errors were encountered: