-
Notifications
You must be signed in to change notification settings - Fork 14.3k
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
feat(native-filters): apply cascading without instant filtering #14966
Conversation
Codecov Report
@@ Coverage Diff @@
## master #14966 +/- ##
==========================================
- Coverage 77.62% 77.62% -0.01%
==========================================
Files 965 965
Lines 49521 49510 -11
Branches 6263 6259 -4
==========================================
- Hits 38442 38430 -12
- Misses 10878 10880 +2
+ Partials 201 200 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
627b7ae
to
1ee5360
Compare
dataMaskSelected: DataMaskState; | ||
dataMaskSelected: DataMaskStateWithId; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bycatch: incorrect datatype
Two issues: 20210603085803494_OpHTRWqp.mov |
can't remove selected item can.t.remove.selected.item.mp4 |
Thanks for flagging this! It seems to be happening on master, too, so isn't directly related to this change. |
|
* upstream/master: (68 commits) fix typos (apache#14950) docs: fix custom oauth config (apache#14997) fix: apply template_params on external_metadata (apache#14996) fix: toggle fullscreen on the dashboard (apache#14979) feat(native-filters): add markers and number formatter + simple tests (apache#14981) fix(native-filters): Fix "undefined" error after editing a filter (apache#14984) fix(native-filters): remove implied fetch predicate (apache#14982) fix(native-filters): update cascaded filter state on change (apache#14980) fix(filter box): replace freeform where clause with ilike (apache#14900) refactor: Convert TableElement.jsx component from class to functional with hooks (apache#14830) fix: renamed sqllab filters to _filters (apache#14971) feat(native-filters): apply cascading without instant filtering (apache#14966) chore: bump superset-ui to 0.17.53 (apache#14968) fix(native-filters): cascading filters not rendering in tab (apache#14964) feat: add type_generic and is_dttm to table metadata (apache#14863) additional safeguard (apache#14953) feat: Adding FORCE_SSL as feature flag in config.py (apache#14934) feat(dashboard/native-filters): Hide filters out of scope of current tab (apache#14933) fix: time parser truncate to first day of year/month (apache#14945) fix: is_temporal should overwrite is_dttm (apache#14894) ...
SUMMARY
Currently enabling cascading in native filters requires instantly applying filters, causing all charts in scope to rerender and retrigger queries. This PR changes child filters to apply the currently selected data mask of the parent filter instead of the currently applied one, removing the need to instantly apply filters.
While making the changes, I considered moving
dataMaskSelected
into Redux instead of adding it as a prop on the chain of components. However, I noticed that many of the intermediate components between the filter tab andFilterValue
were already usingdataMaskSelected
, which made the benefits of moving it to Redux less appealing. In addition, adding it to Redux would have required eitherdataMaskSelected
property to complement thedataMask
property (which contains the applied data mask) in the state treeor
dataMask
so that it would be split intodataMask.applied
anddataMask.selected
Since both of these would have required fairly significant refactoring, it seems better to perform this refactoring later when the full scope of refactoring needs is clear (e.g. will some of this state be moved into Context or be kept in Redux).
BFEORE
Currently each time a parent filter is changed, it triggers the filter automatically:
https://user-images.githubusercontent.com/33317356/120623645-962b6000-c468-11eb-86b5-db95319691f4.mp4
AFTER
Now the parent filter only retriggers the child filters (applying works like before):
https://user-images.githubusercontent.com/33317356/120628894-e2c56a00-c46d-11eb-8200-51d2c73ea10d.mp4
TESTING INSTRUCTIONS
ADDITIONAL INFORMATION