You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ms...@apache.org on 2026/01/12 12:11:36 UTC

(superset) 01/01: fix(Matrixify): Do not clear values when saving

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 <sa...@proton.me>
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;
     }