mirror of
https://github.com/apache/superset.git
synced 2024-09-18 11:39:49 -04:00
fix(plugin-chart-table): Resetting controls when switching query mode (#19792)
This commit is contained in:
parent
9c20299039
commit
fcc8080ff3
@ -117,6 +117,7 @@ const all_columns: typeof sharedControls.groupby = {
|
|||||||
: [],
|
: [],
|
||||||
}),
|
}),
|
||||||
visibility: isRawMode,
|
visibility: isRawMode,
|
||||||
|
resetOnHide: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
const dnd_all_columns: typeof sharedControls.groupby = {
|
const dnd_all_columns: typeof sharedControls.groupby = {
|
||||||
@ -140,6 +141,7 @@ const dnd_all_columns: typeof sharedControls.groupby = {
|
|||||||
return newState;
|
return newState;
|
||||||
},
|
},
|
||||||
visibility: isRawMode,
|
visibility: isRawMode,
|
||||||
|
resetOnHide: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
const percent_metrics: typeof sharedControls.metrics = {
|
const percent_metrics: typeof sharedControls.metrics = {
|
||||||
@ -150,6 +152,7 @@ const percent_metrics: typeof sharedControls.metrics = {
|
|||||||
),
|
),
|
||||||
multi: true,
|
multi: true,
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
mapStateToProps: ({ datasource, controls }, controlState) => ({
|
mapStateToProps: ({ datasource, controls }, controlState) => ({
|
||||||
columns: datasource?.columns || [],
|
columns: datasource?.columns || [],
|
||||||
savedMetrics: datasource?.metrics || [],
|
savedMetrics: datasource?.metrics || [],
|
||||||
@ -190,6 +193,7 @@ const config: ControlPanelConfig = {
|
|||||||
name: 'groupby',
|
name: 'groupby',
|
||||||
override: {
|
override: {
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
mapStateToProps: (
|
mapStateToProps: (
|
||||||
state: ControlPanelState,
|
state: ControlPanelState,
|
||||||
controlState: ControlState,
|
controlState: ControlState,
|
||||||
@ -220,6 +224,7 @@ const config: ControlPanelConfig = {
|
|||||||
override: {
|
override: {
|
||||||
validators: [],
|
validators: [],
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
mapStateToProps: (
|
mapStateToProps: (
|
||||||
{ controls, datasource, form_data }: ControlPanelState,
|
{ controls, datasource, form_data }: ControlPanelState,
|
||||||
controlState: ControlState,
|
controlState: ControlState,
|
||||||
@ -263,6 +268,7 @@ const config: ControlPanelConfig = {
|
|||||||
name: 'timeseries_limit_metric',
|
name: 'timeseries_limit_metric',
|
||||||
override: {
|
override: {
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -277,6 +283,7 @@ const config: ControlPanelConfig = {
|
|||||||
choices: datasource?.order_by_choices || [],
|
choices: datasource?.order_by_choices || [],
|
||||||
}),
|
}),
|
||||||
visibility: isRawMode,
|
visibility: isRawMode,
|
||||||
|
resetOnHide: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -329,6 +336,7 @@ const config: ControlPanelConfig = {
|
|||||||
),
|
),
|
||||||
default: false,
|
default: false,
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -339,6 +347,7 @@ const config: ControlPanelConfig = {
|
|||||||
default: true,
|
default: true,
|
||||||
description: t('Whether to sort descending or ascending'),
|
description: t('Whether to sort descending or ascending'),
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -353,6 +362,7 @@ const config: ControlPanelConfig = {
|
|||||||
'Show total aggregations of selected metrics. Note that row limit does not apply to the result.',
|
'Show total aggregations of selected metrics. Note that row limit does not apply to the result.',
|
||||||
),
|
),
|
||||||
visibility: isAggMode,
|
visibility: isAggMode,
|
||||||
|
resetOnHide: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -46,6 +46,7 @@ export type ControlProps = {
|
|||||||
renderTrigger?: boolean;
|
renderTrigger?: boolean;
|
||||||
default?: JsonValue;
|
default?: JsonValue;
|
||||||
isVisible?: boolean;
|
isVisible?: boolean;
|
||||||
|
resetOnHide?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -65,6 +66,7 @@ export default function Control(props: ControlProps) {
|
|||||||
type,
|
type,
|
||||||
hidden,
|
hidden,
|
||||||
isVisible,
|
isVisible,
|
||||||
|
resetOnHide = true,
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
const [hovered, setHovered] = useState(false);
|
const [hovered, setHovered] = useState(false);
|
||||||
@ -79,7 +81,8 @@ export default function Control(props: ControlProps) {
|
|||||||
wasVisible === true &&
|
wasVisible === true &&
|
||||||
isVisible === false &&
|
isVisible === false &&
|
||||||
props.default !== undefined &&
|
props.default !== undefined &&
|
||||||
!isEqual(props.value, props.default)
|
!isEqual(props.value, props.default) &&
|
||||||
|
resetOnHide
|
||||||
) {
|
) {
|
||||||
// reset control value if setting to invisible
|
// reset control value if setting to invisible
|
||||||
setControlValue?.(name, props.default);
|
setControlValue?.(name, props.default);
|
||||||
|
Loading…
Reference in New Issue
Block a user