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

   ### SUMMARY
   
   Migrates the dashboard feature's state management off Redux to **Zustand** 
(client/UI
   state) and **TanStack Query** (server state), as part of the frontend 
state-management
   modernization (SIP-207).
   
   **Client/UI state → Zustand** (5 dashboard reducers replaced by domain 
stores):
   - `dashboardState`, `dashboardInfo`, `dashboardLayout` (undo/redo via 
`zundo`),
     `nativeFilters`, `dashboardSlices`
   - Each store follows a domain-layer convention: `hooks.ts` for reactive 
reads and
     `actions.ts` for imperative writes, with the raw store never exported.
   
   **Server state → TanStack Query** (`src/dashboard/queries/`):
   - Reads: dashboard detail, slices, themes, CSS templates, favorite status, 
dataset
     metadata, related options.
   - Mutations: save, properties, publish, favorite, filter-config, 
chart-customization,
     chart-configuration, with query-key invalidation and discard-snapshot 
rebaselining.
   
   **Intentionally out of scope (still Redux):** charts, datasources, and
   `dashboardFilters`. These keep their existing Redux bridges by design.
   
   The change is **behavior-preserving**: no user-facing UI or UX change. It is 
a state
   layer refactor that keeps all existing dashboard functionality intact.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   N/A. No visual change. The dashboard renders and behaves identically; this 
PR only
   changes how state is stored and fetched.
   
   ### TESTING INSTRUCTIONS
   
   1. Open several dashboards (with tabs, native filters, cross-filtering). 
Confirm charts
      render.
   2. Edit mode: make layout edits (add/move/resize/delete components, edit 
markdown,
      add/rename/delete tabs). Confirm Undo/Redo and in-place Discard all work.
   3. Change properties (name, theme, color scheme, CSS), Save, reload, confirm 
persistence.
   4. Toggle favorite and publish; confirm both persist across reload.
   5. Apply/clear native filters and cross-filters; set/clear an auto-refresh 
interval.
   
   ### ADDITIONAL INFORMATION
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] 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