This is an automated email from the ASF dual-hosted git repository. msyavuz pushed a commit to branch msyavuz/fix/matrixify-dimension-value-disappear in repository https://gitbox.apache.org/repos/asf/superset.git
commit d24e62ab96ed89610a3f1e12f197ab5115f98d6c Author: Mehmet Salih Yavuz <[email protected]> AuthorDate: Mon Jan 12 15:10:56 2026 +0300 fix(Matrixify): Do not clear values when saving --- .../controls/MatrixifyDimensionControl.tsx | 36 +++++++++------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/superset-frontend/src/explore/components/controls/MatrixifyDimensionControl.tsx b/superset-frontend/src/explore/components/controls/MatrixifyDimensionControl.tsx index 87a1efe291..fc9036c6ec 100644 --- a/superset-frontend/src/explore/components/controls/MatrixifyDimensionControl.tsx +++ b/superset-frontend/src/explore/components/controls/MatrixifyDimensionControl.tsx @@ -82,17 +82,21 @@ export default function MatrixifyDimensionControl( // Reset values when selection mode changes useEffect(() => { - if (prevSelectionMode.current !== selectionMode) { - prevSelectionMode.current = selectionMode; - if (value?.values && value.values.length > 0) { - onChange({ - dimension: value.dimension, - values: [], - topNValues: [], - }); - } + // Only clear values when actually switching between modes, not on initial load or re-render + if ( + prevSelectionMode.current !== selectionMode && + prevSelectionMode.current !== undefined && + value?.dimension + ) { + // Clear values when switching between members and topn modes + onChange({ + dimension: value.dimension, + values: [], + topNValues: [], + }); } - }, [selectionMode, value]); + prevSelectionMode.current = selectionMode; + }, [selectionMode]); // Initialize dimension options from datasource useEffect(() => { @@ -175,18 +179,6 @@ export default function MatrixifyDimensionControl( // Load TopN values when in TopN mode useEffect(() => { if (!value?.dimension || !datasource || selectionMode !== 'topn') { - // Clear values when switching away from topn mode - if ( - selectionMode !== 'topn' && - value?.values && - value.values.length > 0 - ) { - onChange({ - dimension: value.dimension, - values: [], - topNValues: [], - }); - } return undefined; }
