iamthisal opened a new pull request, #45335:
URL: https://github.com/apache/superset/pull/45335

   ### SUMMARY
   
   Fixes #45316.
   
   Returning to Dashboards, Charts, or Datasets through menu navigation 
restores that list's filters, sort order, page, and card/table view. The shared 
list component remembers only those URL settings in sessionStorage, separately 
for each signed-in user and list. Restoration replaces the current history 
entry before the table mounts, so the first data request uses the restored 
settings. Any explicit list setting in a URL takes priority over saved state.
   
   The existing Clear all controls clear saved filters across all three lists 
and reset their pages while preserving sort order and view mode. They remain 
enabled when another list has saved filters. View-mode URL synchronization is 
separated from data fetching so switching card/table view persists without an 
extra data request. Other list pages remain opted out.
   
   Design choices proposed for review: persistence lasts for the browser tab's 
session; Clear all applies to the three list pages for the same user. The issue 
discussion has not yet confirmed these choices.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Before: filtering a list, visiting another list, and returning through the 
top menu resets the list settings.
   
   After: the settings return independently for each list. Existing filter 
controls are reused; no visual layout changes.
   
   ### TESTING INSTRUCTIONS
   
   1. On Dashboards, apply owner/tag filters, change sorting, move to a later 
page, and choose card or table view.
   2. Navigate to Charts and Datasets using the top menu and choose different 
settings on each. Return to each list through the menu and confirm its settings 
are restored.
   3. Open a URL with explicit list settings and confirm it takes priority over 
saved settings. Check Back/Forward pagination without extra history entries.
   4. Click Clear all from the filter bar, mobile drawer, or filtered empty 
state. Return to all three lists and confirm filters are cleared and pagination 
resets, while sorting and view mode remain. Check clearing from a currently 
unfiltered list when another list has filters.
   5. Check a different signed-in user does not inherit the prior user's 
settings.
   
   Local validation:
   - 22 Jest regression tests passed using an isolated Jest configuration with 
React, React Router, react-table, and use-query-params. Covers navigation 
restoration, URL precedence, isolation, encoded values, clearing, unavailable 
storage, first-request state, view-mode persistence, and Back/Forward table 
pagination.
   - TypeScript check of the new persistence hook passed.
   - Pre-commit formatting, oxlint, custom rules, stylelint, file-size, EOF, 
and whitespace checks passed.
   - The repository-wide dependency graph required by the pre-commit 
Type-Checking hook could not be validated in this checkout: Superset workspace 
declaration outputs are not built (TS6305), and full frontend dependencies such 
as @emotion/react are missing (TS2307). The full application and browser 
walkthrough have not been run locally. Draft pending CI validation and 
confirmation of the design choices above.
   
   ### ADDITIONAL INFORMATION
   
   - [x] Has associated issue: #45316
   - [ ] Required feature flags:
   - [x] Changes UI
   - [ ] Includes DB Migration
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to