-
Notifications
You must be signed in to change notification settings - Fork 13.9k
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
fix(native-filters): set currentValue null when empty #13000
fix(native-filters): set currentValue null when empty #13000
Conversation
Codecov Report
@@ Coverage Diff @@
## master #13000 +/- ##
===========================================
+ Coverage 53.17% 72.89% +19.72%
===========================================
Files 449 545 +96
Lines 14826 20162 +5336
Branches 3959 5268 +1309
===========================================
+ Hits 7884 14698 +6814
+ Misses 6942 5339 -1603
- Partials 0 125 +125
Flags with carried forward coverage won't be shown. Click here to find out more.
Continue to review full report at Codecov.
|
@@ -76,7 +76,10 @@ export default function AntdPluginFilterSelect( | |||
), | |||
// @ts-ignore (add to superset-ui/core) | |||
currentState: { | |||
value: resultValue, | |||
value: | |||
Array.isArray(resultValue) && resultValue.length === 0 |
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.
I think resultValue
always is array according line 60
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.
Oh nice catch! I was getting value
and resultValue
mixed up here.
3fa9fd3
to
8f483c7
Compare
* master: (30 commits) refactor(native-filters): decouple params from filter config modal (first phase) (apache#13021) fix(native-filters): set currentValue null when empty (apache#13000) Custom superset_config.py + secret envs (apache#13096) Update http error code from 400 to 403 (apache#13061) feat(native-filters): add storybook entry for select filter (apache#13005) feat(native-filters): Time native filter (apache#12992) Force pod restart on config changes (apache#13056) feat(cross-filters): add cross filters (apache#12662) fix(explore): Enable selecting an option not included in suggestions (apache#13029) Improves RTL configuration (apache#13079) Added a note about the ! prefix for breaking changes to CONTRIBUTING.md (apache#13083) chore: lock down npm to v6 (apache#13069) fix: API tests, make them possible to run independently again (apache#13076) fix: add config to disable dataset ownership on the old api (apache#13051) add required * indicator to message content/notif method (apache#12931) fix: Retroactively add granularity param to charts (apache#12960) fix(ci): multiline regex in change detection (apache#13075) feat(style): hide dashboard header by url parameter (apache#12918) fix(explore): pie chart label bugs (apache#13052) fix: Disabled state button transition time (apache#13008) ...
SUMMARY
Currently cascading filters evaluate truthiness of the parent filter when determining if the child filter should be rendered in place of the parent. Since the native Select filter returns an empty array for an empty selection, the parent filter is determined to be set, even though it isn't.
Here we change the cascading logic so that only
undefined
andnull
are assumed to be unset. This is done because there may be other filters that have falsy values which in fact mean that the filter is set, for instance a lower range being set to0
.SCREENSHOTS
In the example, I've constructed a cascading filter with "region" as the parent and "country" as the child. As can be seen, the "country" filter show up on the filter tab, despite the selection being empty on the "region" filter:
After the change, an empty selection is set as
null
, making the parent filter display in the filter tab:TEST PLAN
ADDITIONAL INFORMATION