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]