From 97dde8c4855641de38f01218d0a4bb5460e3f1b2 Mon Sep 17 00:00:00 2001 From: Damian Pendrak Date: Fri, 29 Nov 2024 16:09:03 +0100 Subject: [PATCH] fix: x axis title disappears when editing bar chart (#30821) --- .../superset-ui-chart-controls/src/types.ts | 1 + .../Timeseries/Regular/Bar/controlPanel.tsx | 24 +++++++++++++++++++ .../components/ControlPanelsContainer.tsx | 4 ++-- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts index 9370c8d1d..e9606c6ba 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/types.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/types.ts @@ -262,6 +262,7 @@ export interface BaseControlConfig< props: ControlPanelsContainerProps, controlData: AnyDict, ) => boolean; + disableStash?: boolean; hidden?: | boolean | ((props: ControlPanelsContainerProps, controlData: AnyDict) => boolean); diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx index 292070632..ee2d9a6c5 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx +++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx @@ -73,6 +73,8 @@ function createAxisTitleControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Changing this control takes effect instantly'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isVertical(controls) : isHorizontal(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -90,6 +92,8 @@ function createAxisTitleControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Changing this control takes effect instantly'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isVertical(controls) : isHorizontal(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -104,6 +108,8 @@ function createAxisTitleControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Changing this control takes effect instantly'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -121,6 +127,8 @@ function createAxisTitleControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Changing this control takes effect instantly'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -138,6 +146,8 @@ function createAxisTitleControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Changing this control takes effect instantly'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -160,6 +170,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { description: `${D3_TIME_FORMAT_DOCS}. ${TIME_SERIES_DESCRIPTION_TEXT}`, visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isVertical(controls) : isHorizontal(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -170,6 +182,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { ...xAxisLabelRotation.config, visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isVertical(controls) : isHorizontal(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -181,6 +195,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { label: t('Axis Format'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -196,6 +212,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Logarithmic axis'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -210,6 +228,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('Draw split lines for minor axis ticks'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -224,6 +244,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { description: t('It’s not recommended to truncate axis in Bar chart.'), visibility: ({ controls }: ControlPanelsContainerProps) => isXAxis ? isHorizontal(controls) : isVertical(controls), + disableStash: true, + resetOnHide: false, }, }, ], @@ -244,6 +266,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] { visibility: ({ controls }: ControlPanelsContainerProps) => Boolean(controls?.truncateYAxis?.value) && (isXAxis ? isHorizontal(controls) : isVertical(controls)), + disableStash: true, + resetOnHide: false, }, }, ], diff --git a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx index a87bebb50..4490cd64a 100644 --- a/superset-frontend/src/explore/components/ControlPanelsContainer.tsx +++ b/superset-frontend/src/explore/components/ControlPanelsContainer.tsx @@ -448,7 +448,7 @@ export const ControlPanelsContainer = (props: ControlPanelsContainerProps) => { const renderControl = ({ name, config }: CustomControlItem) => { const { controls, chart, exploreState } = props; - const { visibility, hidden, ...restConfig } = config; + const { visibility, hidden, disableStash, ...restConfig } = config; // If the control item is not an object, we have to look up the control data from // the centralized controls file. @@ -529,7 +529,7 @@ export const ControlPanelsContainer = (props: ControlPanelsContainerProps) => { return (