Skip to content

Commit 31b6e01

Browse files
committed
fix: prevent unintended sort change on header click after column resize
Signed-off-by: Gordon Smith <GordonJSmith@gmail.com>
1 parent ada394f commit 31b6e01

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

packages/dgrid-shim/src/gridHelper.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const GridHelper = declare(null, {
2222
const self = this;
2323
let _lastResizeDownTime = 0;
2424
let _lastResizeColId: string | null = null;
25+
let _suppressNextHeaderClick = false;
2526
this.headerNode.addEventListener("mousedown", function (evt: MouseEvent) {
2627
const target = evt.target as any;
2728
if (!target.classList.contains("dgrid-resize-handle")) return;
@@ -35,13 +36,25 @@ export const GridHelper = declare(null, {
3536
evt.preventDefault();
3637
const detail = self.columns[colId];
3738
if (!detail) return;
39+
// Suppress the click that follows this mousedown — the column may
40+
// resize wider, moving the handle away so the click lands on the
41+
// header cell and would otherwise trigger a sort change.
42+
_suppressNextHeaderClick = true;
3843
self.domNode.dispatchEvent(new CustomEvent("dgrid-column-autofit", { detail, bubbles: true, cancelable: true }));
3944
} else {
4045
_lastResizeDownTime = now;
4146
_lastResizeColId = colId;
4247
}
4348
}, { capture: true });
4449

50+
this.headerNode.addEventListener("click", function (evt: MouseEvent) {
51+
if (_suppressNextHeaderClick) {
52+
_suppressNextHeaderClick = false;
53+
evt.stopPropagation();
54+
evt.preventDefault();
55+
}
56+
}, { capture: true });
57+
4558
this.__hpcc_tooltip_header = new Tooltip({
4659
connectId: [this.id],
4760
selector: ".dgrid-resize-header-container",

0 commit comments

Comments
 (0)