From bc40e4d2644e1a732cad7a82cad7239b30d2ff0a Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Tue, 24 Jun 2025 07:43:50 +0000 Subject: [PATCH 1/5] Fix: Allow deselection of rows within a range selection When multiple rows are selected using SHIFT + click, clicking on an individual row within that selection did not deselect it. This commit modifies the `handleComplexRowClick` function in the `SelectRow` module to correctly handle this scenario. Now, clicking an already selected row will deselect it, regardless of how it was initially selected. --- src/js/modules/SelectRow/SelectRow.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/js/modules/SelectRow/SelectRow.js b/src/js/modules/SelectRow/SelectRow.js index beb557a3d..677367429 100644 --- a/src/js/modules/SelectRow/SelectRow.js +++ b/src/js/modules/SelectRow/SelectRow.js @@ -203,8 +203,13 @@ export default class SelectRow extends Module{ this.toggleRow(row); this.lastClickedRow = row; }else{ - this.deselectRows(undefined, true); - this.selectRows(row); + // If the row is already selected, deselect it. Otherwise, select it and deselect others. + if (this.isRowSelected(row)) { + this.deselectRows(row, true); + } else { + this.deselectRows(undefined, true); + this.selectRows(row); + } this.lastClickedRow = row; } } From 3a2e525af73021a476c59511b56d967c284be4bf Mon Sep 17 00:00:00 2001 From: Edmund Ophie Date: Tue, 24 Jun 2025 15:02:08 +0700 Subject: [PATCH 2/5] Deselect a row if it is previously the only one being selected --- src/js/modules/SelectRow/SelectRow.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/js/modules/SelectRow/SelectRow.js b/src/js/modules/SelectRow/SelectRow.js index 677367429..5c348031e 100644 --- a/src/js/modules/SelectRow/SelectRow.js +++ b/src/js/modules/SelectRow/SelectRow.js @@ -202,12 +202,16 @@ export default class SelectRow extends Module{ else if(e.ctrlKey || e.metaKey){ this.toggleRow(row); this.lastClickedRow = row; - }else{ - // If the row is already selected, deselect it. Otherwise, select it and deselect others. - if (this.isRowSelected(row)) { - this.deselectRows(row, true); + } else{ + // Handle row clicked without SHIFT/CTRL: + // - If the clicked row is the only selected row: Deselect it. + // - If the clicked row is one of multiple selected rows: Make it the only selected row (deselect others). + // - If the clicked row is not currently selected: Deselect all others and select the clicked row. + this.deselectRows(undefined, true); + + if (this.selectedRows.length === 1 && this.isRowSelected(row)) { + // do nothing } else { - this.deselectRows(undefined, true); this.selectRows(row); } this.lastClickedRow = row; From c85c8ef2f37f951279f82df4ea683179a52e2b4b Mon Sep 17 00:00:00 2001 From: Edmund Ophie Date: Tue, 24 Jun 2025 15:17:43 +0700 Subject: [PATCH 3/5] remove comment --- src/js/modules/SelectRow/SelectRow.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/js/modules/SelectRow/SelectRow.js b/src/js/modules/SelectRow/SelectRow.js index 5c348031e..0dce9b608 100644 --- a/src/js/modules/SelectRow/SelectRow.js +++ b/src/js/modules/SelectRow/SelectRow.js @@ -203,10 +203,6 @@ export default class SelectRow extends Module{ this.toggleRow(row); this.lastClickedRow = row; } else{ - // Handle row clicked without SHIFT/CTRL: - // - If the clicked row is the only selected row: Deselect it. - // - If the clicked row is one of multiple selected rows: Make it the only selected row (deselect others). - // - If the clicked row is not currently selected: Deselect all others and select the clicked row. this.deselectRows(undefined, true); if (this.selectedRows.length === 1 && this.isRowSelected(row)) { From e9fc1587bdb5f95fdce986f0d97d52ec721179a8 Mon Sep 17 00:00:00 2001 From: Edmund Ophie Date: Tue, 24 Jun 2025 15:18:46 +0700 Subject: [PATCH 4/5] fix lint --- src/js/modules/SelectRow/SelectRow.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/js/modules/SelectRow/SelectRow.js b/src/js/modules/SelectRow/SelectRow.js index 0dce9b608..9d5665c5c 100644 --- a/src/js/modules/SelectRow/SelectRow.js +++ b/src/js/modules/SelectRow/SelectRow.js @@ -202,9 +202,8 @@ export default class SelectRow extends Module{ else if(e.ctrlKey || e.metaKey){ this.toggleRow(row); this.lastClickedRow = row; - } else{ + }else{ this.deselectRows(undefined, true); - if (this.selectedRows.length === 1 && this.isRowSelected(row)) { // do nothing } else { From c232f95ce5e4f1f00c279990ee1a80df28afa2b6 Mon Sep 17 00:00:00 2001 From: Edmund Ophie Date: Tue, 22 Jul 2025 19:35:34 +0700 Subject: [PATCH 5/5] fix wipe --- src/js/core/row/Row.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/js/core/row/Row.js b/src/js/core/row/Row.js index f1d09bff3..71ddb3aee 100644 --- a/src/js/core/row/Row.js +++ b/src/js/core/row/Row.js @@ -437,6 +437,11 @@ export default class Row extends CoreFeature{ this.element = false; this.modules = {}; + + this.initialized = false; + this.heightInitialized = false; + this.component = null; + this.created = false; } isDisplayed(){