filamentphp / filament

A collection of beautiful full-stack components for Laravel. The perfect starting point for your next app. Using Livewire, Alpine.js and Tailwind CSS.
https://filamentphp.com
MIT License
18.08k stars 2.83k forks source link

Tabs navigation in list page does not reset the page query parameter. #7713

Closed dev3k closed 1 year ago

dev3k commented 1 year ago

Package

filament/filament

Package Version

v3.0.19

Laravel Version

10.18.0

Livewire Version

v3.0.0-beta.7

PHP Version

8.2.8

Problem description

keeping the page number will lead to certain pages/tabs display empty tables.

Expected behavior

page should reset to 1

Steps to reproduce

  1. Navigate to https://demo.filamentphp.com/shop/orders
  2. Use pagination to navigate to page 100
  3. Click any tab like "cancelled"
  4. watch the page query param and empty table

Reproduction repository

https://github.com/filamentphp/demo

Relevant log output

No response

github-actions[bot] commented 1 year ago

Hey @dev3k! 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.

dev3k commented 1 year ago

Maybe in filament/filament/src/Resources/Pages/ListRecords.php we add something like code below ?, I'm not sure what paginators exactly do, but I tested it and indeed it resets the page number when navigating through tabs with "page" query is set

 public function updated($property, $value)
    {
        if ($property === 'activeTab') {
            $this->paginators['page'] = null; //or 1 
        }
    }