mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
fix: Inoperable dashboard filter slider when range is <= 1 (#27271)
Co-authored-by: Justin Francos <jfrancos@manifold.ai>
This commit is contained in:
committed by
GitHub
parent
e817b48ec9
commit
ce9e4b4b77
@@ -300,6 +300,16 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
}
|
||||
}, [enableSingleExactValue]);
|
||||
|
||||
const MIN_NUM_STEPS = 20;
|
||||
const stepHeuristic = (min: number, max: number) => {
|
||||
const maxStepSize = (max - min) / MIN_NUM_STEPS;
|
||||
// normalizedStepSize: .06 -> .01, .003 -> .001
|
||||
const normalizedStepSize = `1E${Math.floor(Math.log10(maxStepSize))}`;
|
||||
return Math.min(1, parseFloat(normalizedStepSize));
|
||||
};
|
||||
|
||||
const step = max - min <= 1 ? stepHeuristic(min, max) : 1;
|
||||
|
||||
return (
|
||||
<FilterPluginStyle height={height} width={width}>
|
||||
{Number.isNaN(Number(min)) || Number.isNaN(Number(max)) ? (
|
||||
@@ -323,6 +333,7 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
<AntdSlider
|
||||
min={min}
|
||||
max={max}
|
||||
step={step}
|
||||
value={minMax[maxIndex]}
|
||||
tipFormatter={tipFormatter}
|
||||
marks={marks}
|
||||
@@ -335,6 +346,7 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
validateStatus={filterState.validateStatus}
|
||||
min={min}
|
||||
max={max}
|
||||
step={step}
|
||||
value={minMax[minIndex]}
|
||||
tipFormatter={tipFormatter}
|
||||
marks={marks}
|
||||
@@ -346,6 +358,7 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
<AntdSlider
|
||||
min={min}
|
||||
max={max}
|
||||
step={step}
|
||||
included={false}
|
||||
value={minMax[minIndex]}
|
||||
tipFormatter={tipFormatter}
|
||||
@@ -359,6 +372,7 @@ export default function RangeFilterPlugin(props: PluginFilterRangeProps) {
|
||||
range
|
||||
min={min}
|
||||
max={max}
|
||||
step={step}
|
||||
value={minMax}
|
||||
onAfterChange={handleAfterChange}
|
||||
onChange={handleChange}
|
||||
|
||||
Reference in New Issue
Block a user