react-resizable-panels 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/declarations/src/Panel.d.ts +1 -1
- package/dist/declarations/src/PanelGroup.d.ts +1 -1
- package/dist/declarations/src/PanelResizeHandle.d.ts +6 -3
- package/dist/react-resizable-panels.browser.cjs.js +90 -94
- package/dist/react-resizable-panels.browser.development.cjs.js +90 -94
- package/dist/react-resizable-panels.browser.development.esm.js +38 -41
- package/dist/react-resizable-panels.browser.esm.js +38 -41
- package/dist/react-resizable-panels.cjs.js +90 -94
- package/dist/react-resizable-panels.development.cjs.js +90 -94
- package/dist/react-resizable-panels.development.esm.js +38 -41
- package/dist/react-resizable-panels.development.node.cjs.js +89 -92
- package/dist/react-resizable-panels.development.node.esm.js +37 -39
- package/dist/react-resizable-panels.esm.js +38 -41
- package/dist/react-resizable-panels.node.cjs.js +89 -92
- package/dist/react-resizable-panels.node.esm.js +37 -39
- package/package.json +7 -2
- package/.eslintrc.cjs +0 -27
- package/CHANGELOG.md +0 -574
- package/dist/declarations/src/vendor/react.d.ts +0 -7
- package/jest.config.js +0 -10
- package/src/Panel.test.tsx +0 -1084
- package/src/Panel.ts +0 -259
- package/src/PanelGroup.test.tsx +0 -443
- package/src/PanelGroup.ts +0 -999
- package/src/PanelGroupContext.ts +0 -42
- package/src/PanelResizeHandle.test.tsx +0 -367
- package/src/PanelResizeHandle.ts +0 -246
- package/src/PanelResizeHandleRegistry.ts +0 -336
- package/src/constants.ts +0 -1
- package/src/env-conditions/browser.ts +0 -1
- package/src/env-conditions/development.ts +0 -1
- package/src/env-conditions/node.ts +0 -1
- package/src/env-conditions/production.ts +0 -1
- package/src/env-conditions/unknown.ts +0 -1
- package/src/hooks/useForceUpdate.ts +0 -7
- package/src/hooks/useIsomorphicEffect.ts +0 -8
- package/src/hooks/useUniqueId.ts +0 -19
- package/src/hooks/useWindowSplitterBehavior.ts +0 -90
- package/src/hooks/useWindowSplitterPanelGroupBehavior.ts +0 -201
- package/src/index.ts +0 -77
- package/src/types.ts +0 -5
- package/src/utils/adjustLayoutByDelta.test.ts +0 -2061
- package/src/utils/adjustLayoutByDelta.ts +0 -308
- package/src/utils/arrays.ts +0 -13
- package/src/utils/assert.ts +0 -10
- package/src/utils/calculateAriaValues.test.ts +0 -106
- package/src/utils/calculateAriaValues.ts +0 -45
- package/src/utils/calculateDeltaPercentage.ts +0 -63
- package/src/utils/calculateDragOffsetPercentage.ts +0 -40
- package/src/utils/calculateUnsafeDefaultLayout.test.ts +0 -87
- package/src/utils/calculateUnsafeDefaultLayout.ts +0 -50
- package/src/utils/callPanelCallbacks.ts +0 -49
- package/src/utils/compareLayouts.test.ts +0 -9
- package/src/utils/compareLayouts.ts +0 -12
- package/src/utils/computePanelFlexBoxStyle.test.ts +0 -123
- package/src/utils/computePanelFlexBoxStyle.ts +0 -50
- package/src/utils/csp.ts +0 -9
- package/src/utils/cursor.ts +0 -103
- package/src/utils/debounce.ts +0 -18
- package/src/utils/determinePivotIndices.ts +0 -15
- package/src/utils/dom/getPanelElement.ts +0 -10
- package/src/utils/dom/getPanelElementsForGroup.ts +0 -8
- package/src/utils/dom/getPanelGroupElement.ts +0 -21
- package/src/utils/dom/getResizeHandleElement.ts +0 -10
- package/src/utils/dom/getResizeHandleElementIndex.ts +0 -13
- package/src/utils/dom/getResizeHandleElementsForGroup.ts +0 -10
- package/src/utils/dom/getResizeHandlePanelIds.ts +0 -19
- package/src/utils/events/getResizeEventCoordinates.ts +0 -23
- package/src/utils/events/getResizeEventCursorPosition.ts +0 -14
- package/src/utils/events/index.ts +0 -13
- package/src/utils/getInputType.ts +0 -5
- package/src/utils/initializeDefaultStorage.ts +0 -26
- package/src/utils/numbers/fuzzyCompareNumbers.test.ts +0 -16
- package/src/utils/numbers/fuzzyCompareNumbers.ts +0 -21
- package/src/utils/numbers/fuzzyLayoutsEqual.ts +0 -22
- package/src/utils/numbers/fuzzyNumbersEqual.ts +0 -9
- package/src/utils/rects/getIntersectingRectangle.test.ts +0 -198
- package/src/utils/rects/getIntersectingRectangle.ts +0 -28
- package/src/utils/rects/intersects.test.ts +0 -197
- package/src/utils/rects/intersects.ts +0 -23
- package/src/utils/rects/types.ts +0 -6
- package/src/utils/resizePanel.test.ts +0 -59
- package/src/utils/resizePanel.ts +0 -47
- package/src/utils/serialization.ts +0 -87
- package/src/utils/test-utils.ts +0 -205
- package/src/utils/validatePanelConstraints.test.ts +0 -143
- package/src/utils/validatePanelConstraints.ts +0 -69
- package/src/utils/validatePanelGroupLayout.test.ts +0 -148
- package/src/utils/validatePanelGroupLayout.ts +0 -95
- package/src/vendor/react.ts +0 -73
- package/src/vendor/stacking-order.ts +0 -139
|
@@ -1,32 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
// This module exists to work around Webpack issue https://github.com/webpack/webpack/issues/14814
|
|
4
|
-
|
|
5
|
-
// eslint-disable-next-line no-restricted-imports
|
|
6
|
-
|
|
7
|
-
const {
|
|
8
|
-
createElement,
|
|
9
|
-
createContext,
|
|
10
|
-
createRef,
|
|
11
|
-
forwardRef,
|
|
12
|
-
useCallback,
|
|
13
|
-
useContext,
|
|
14
|
-
useEffect,
|
|
15
|
-
useImperativeHandle,
|
|
16
|
-
useLayoutEffect,
|
|
17
|
-
useMemo,
|
|
18
|
-
useRef,
|
|
19
|
-
useState
|
|
20
|
-
} = React;
|
|
21
|
-
|
|
22
|
-
// `Math.random()` and `.slice(0, 5)` prevents bundlers from trying to `import { useId } from 'react'`
|
|
23
|
-
const useId = React[`useId${Math.random()}`.slice(0, 5)];
|
|
2
|
+
import { createContext, useRef, forwardRef, createElement, useContext, useImperativeHandle, useState, useCallback, useEffect, useMemo } from 'react';
|
|
24
3
|
|
|
25
4
|
// The "contextmenu" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled
|
|
26
5
|
|
|
27
6
|
const PanelGroupContext = createContext(null);
|
|
28
7
|
PanelGroupContext.displayName = "PanelGroupContext";
|
|
29
8
|
|
|
9
|
+
const useId = React["useId".toString()];
|
|
30
10
|
const wrappedUseId = typeof useId === "function" ? useId : () => null;
|
|
31
11
|
let counter = 0;
|
|
32
12
|
function useUniqueId(idFromParams = null) {
|
|
@@ -132,7 +112,7 @@ function PanelWithForwardedRef({
|
|
|
132
112
|
...rest,
|
|
133
113
|
children,
|
|
134
114
|
className: classNameFromProps,
|
|
135
|
-
id:
|
|
115
|
+
id: panelId,
|
|
136
116
|
style: {
|
|
137
117
|
...style,
|
|
138
118
|
...styleFromProps
|
|
@@ -282,8 +262,8 @@ function intersects(rectOne, rectTwo, strict) {
|
|
|
282
262
|
/**
|
|
283
263
|
* Determine which of two nodes appears in front of the other —
|
|
284
264
|
* if `a` is in front, returns 1, otherwise returns -1
|
|
285
|
-
* @param {HTMLElement} a
|
|
286
|
-
* @param {HTMLElement} b
|
|
265
|
+
* @param {HTMLElement | SVGElement} a
|
|
266
|
+
* @param {HTMLElement | SVGElement} b
|
|
287
267
|
*/
|
|
288
268
|
function compare(a, b) {
|
|
289
269
|
if (a === b) throw new Error("Cannot compare node with itself");
|
|
@@ -321,7 +301,7 @@ function compare(a, b) {
|
|
|
321
301
|
}
|
|
322
302
|
const props = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
|
|
323
303
|
|
|
324
|
-
/** @param {HTMLElement} node */
|
|
304
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
325
305
|
function is_flex_item(node) {
|
|
326
306
|
var _get_parent;
|
|
327
307
|
// @ts-ignore
|
|
@@ -329,7 +309,7 @@ function is_flex_item(node) {
|
|
|
329
309
|
return display === "flex" || display === "inline-flex";
|
|
330
310
|
}
|
|
331
311
|
|
|
332
|
-
/** @param {HTMLElement} node */
|
|
312
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
333
313
|
function creates_stacking_context(node) {
|
|
334
314
|
const style = getComputedStyle(node);
|
|
335
315
|
|
|
@@ -354,7 +334,7 @@ function creates_stacking_context(node) {
|
|
|
354
334
|
return false;
|
|
355
335
|
}
|
|
356
336
|
|
|
357
|
-
/** @param {HTMLElement[]} nodes */
|
|
337
|
+
/** @param {(HTMLElement| SVGElement)[]} nodes */
|
|
358
338
|
function find_stacking_context(nodes) {
|
|
359
339
|
let i = nodes.length;
|
|
360
340
|
while (i--) {
|
|
@@ -365,7 +345,7 @@ function find_stacking_context(nodes) {
|
|
|
365
345
|
return null;
|
|
366
346
|
}
|
|
367
347
|
|
|
368
|
-
/** @param {HTMLElement} node */
|
|
348
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
369
349
|
function get_z_index(node) {
|
|
370
350
|
return node && Number(getComputedStyle(node).zIndex) || 0;
|
|
371
351
|
}
|
|
@@ -527,7 +507,7 @@ function recalculateIntersectingHandles({
|
|
|
527
507
|
}) {
|
|
528
508
|
intersectingHandles.splice(0);
|
|
529
509
|
let targetElement = null;
|
|
530
|
-
if (target instanceof HTMLElement) {
|
|
510
|
+
if (target instanceof HTMLElement || target instanceof SVGElement) {
|
|
531
511
|
targetElement = target;
|
|
532
512
|
}
|
|
533
513
|
registeredResizeHandlers.forEach(data => {
|
|
@@ -617,7 +597,9 @@ function updateListeners() {
|
|
|
617
597
|
body
|
|
618
598
|
} = ownerDocument;
|
|
619
599
|
body.removeEventListener("contextmenu", handlePointerUp);
|
|
620
|
-
body.removeEventListener("pointerdown", handlePointerDown
|
|
600
|
+
body.removeEventListener("pointerdown", handlePointerDown, {
|
|
601
|
+
capture: true
|
|
602
|
+
});
|
|
621
603
|
body.removeEventListener("pointerleave", handlePointerMove);
|
|
622
604
|
body.removeEventListener("pointermove", handlePointerMove);
|
|
623
605
|
});
|
|
@@ -2117,8 +2099,11 @@ function PanelResizeHandle({
|
|
|
2117
2099
|
hitAreaMargins,
|
|
2118
2100
|
id: idFromProps,
|
|
2119
2101
|
onBlur,
|
|
2102
|
+
onClick,
|
|
2120
2103
|
onDragging,
|
|
2121
2104
|
onFocus,
|
|
2105
|
+
onPointerDown,
|
|
2106
|
+
onPointerUp,
|
|
2122
2107
|
style: styleFromProps = {},
|
|
2123
2108
|
tabIndex = 0,
|
|
2124
2109
|
tagName: Type = "div",
|
|
@@ -2129,10 +2114,16 @@ function PanelResizeHandle({
|
|
|
2129
2114
|
|
|
2130
2115
|
// Use a ref to guard against users passing inline props
|
|
2131
2116
|
const callbacksRef = useRef({
|
|
2132
|
-
|
|
2117
|
+
onClick,
|
|
2118
|
+
onDragging,
|
|
2119
|
+
onPointerDown,
|
|
2120
|
+
onPointerUp
|
|
2133
2121
|
});
|
|
2134
2122
|
useEffect(() => {
|
|
2123
|
+
callbacksRef.current.onClick = onClick;
|
|
2135
2124
|
callbacksRef.current.onDragging = onDragging;
|
|
2125
|
+
callbacksRef.current.onPointerDown = onPointerDown;
|
|
2126
|
+
callbacksRef.current.onPointerUp = onPointerUp;
|
|
2136
2127
|
});
|
|
2137
2128
|
const panelGroupContext = useContext(PanelGroupContext);
|
|
2138
2129
|
if (panelGroupContext === null) {
|
|
@@ -2172,20 +2163,22 @@ function PanelResizeHandle({
|
|
|
2172
2163
|
}
|
|
2173
2164
|
const element = elementRef.current;
|
|
2174
2165
|
assert(element, "Element ref not attached");
|
|
2166
|
+
let didMove = false;
|
|
2175
2167
|
const setResizeHandlerState = (action, isActive, event) => {
|
|
2176
2168
|
if (isActive) {
|
|
2177
2169
|
switch (action) {
|
|
2178
2170
|
case "down":
|
|
2179
2171
|
{
|
|
2180
2172
|
setState("drag");
|
|
2173
|
+
didMove = false;
|
|
2181
2174
|
assert(event, 'Expected event to be defined for "down" action');
|
|
2182
2175
|
startDragging(resizeHandleId, event);
|
|
2183
2176
|
const {
|
|
2184
|
-
onDragging
|
|
2177
|
+
onDragging,
|
|
2178
|
+
onPointerDown
|
|
2185
2179
|
} = callbacksRef.current;
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
}
|
|
2180
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(true);
|
|
2181
|
+
onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown();
|
|
2189
2182
|
break;
|
|
2190
2183
|
}
|
|
2191
2184
|
case "move":
|
|
@@ -2193,6 +2186,7 @@ function PanelResizeHandle({
|
|
|
2193
2186
|
const {
|
|
2194
2187
|
state
|
|
2195
2188
|
} = committedValuesRef.current;
|
|
2189
|
+
didMove = true;
|
|
2196
2190
|
if (state !== "drag") {
|
|
2197
2191
|
setState("hover");
|
|
2198
2192
|
}
|
|
@@ -2205,10 +2199,14 @@ function PanelResizeHandle({
|
|
|
2205
2199
|
setState("hover");
|
|
2206
2200
|
stopDragging();
|
|
2207
2201
|
const {
|
|
2208
|
-
|
|
2202
|
+
onClick,
|
|
2203
|
+
onDragging,
|
|
2204
|
+
onPointerUp
|
|
2209
2205
|
} = callbacksRef.current;
|
|
2210
|
-
|
|
2211
|
-
|
|
2206
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(false);
|
|
2207
|
+
onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp();
|
|
2208
|
+
if (!didMove) {
|
|
2209
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
2212
2210
|
}
|
|
2213
2211
|
break;
|
|
2214
2212
|
}
|
|
@@ -1,37 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { createContext, useLayoutEffect, useRef, forwardRef, createElement, useContext, useImperativeHandle, useState, useCallback, useEffect, useMemo } from 'react';
|
|
2
3
|
|
|
3
4
|
const isBrowser = typeof window !== "undefined";
|
|
4
5
|
|
|
5
|
-
// This module exists to work around Webpack issue https://github.com/webpack/webpack/issues/14814
|
|
6
|
-
|
|
7
|
-
// eslint-disable-next-line no-restricted-imports
|
|
8
|
-
|
|
9
|
-
const {
|
|
10
|
-
createElement,
|
|
11
|
-
createContext,
|
|
12
|
-
createRef,
|
|
13
|
-
forwardRef,
|
|
14
|
-
useCallback,
|
|
15
|
-
useContext,
|
|
16
|
-
useEffect,
|
|
17
|
-
useImperativeHandle,
|
|
18
|
-
useLayoutEffect,
|
|
19
|
-
useMemo,
|
|
20
|
-
useRef,
|
|
21
|
-
useState
|
|
22
|
-
} = React;
|
|
23
|
-
|
|
24
|
-
// `Math.random()` and `.slice(0, 5)` prevents bundlers from trying to `import { useId } from 'react'`
|
|
25
|
-
const useId = React[`useId${Math.random()}`.slice(0, 5)];
|
|
26
|
-
const useLayoutEffect_do_not_use_directly = useLayoutEffect;
|
|
27
|
-
|
|
28
6
|
// The "contextmenu" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled
|
|
29
7
|
|
|
30
8
|
const PanelGroupContext = createContext(null);
|
|
31
9
|
PanelGroupContext.displayName = "PanelGroupContext";
|
|
32
10
|
|
|
33
|
-
const useIsomorphicLayoutEffect = isBrowser ?
|
|
11
|
+
const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : () => {};
|
|
34
12
|
|
|
13
|
+
const useId = React["useId".toString()];
|
|
35
14
|
const wrappedUseId = typeof useId === "function" ? useId : () => null;
|
|
36
15
|
let counter = 0;
|
|
37
16
|
function useUniqueId(idFromParams = null) {
|
|
@@ -159,7 +138,7 @@ function PanelWithForwardedRef({
|
|
|
159
138
|
...rest,
|
|
160
139
|
children,
|
|
161
140
|
className: classNameFromProps,
|
|
162
|
-
id:
|
|
141
|
+
id: panelId,
|
|
163
142
|
style: {
|
|
164
143
|
...style,
|
|
165
144
|
...styleFromProps
|
|
@@ -309,8 +288,8 @@ function intersects(rectOne, rectTwo, strict) {
|
|
|
309
288
|
/**
|
|
310
289
|
* Determine which of two nodes appears in front of the other —
|
|
311
290
|
* if `a` is in front, returns 1, otherwise returns -1
|
|
312
|
-
* @param {HTMLElement} a
|
|
313
|
-
* @param {HTMLElement} b
|
|
291
|
+
* @param {HTMLElement | SVGElement} a
|
|
292
|
+
* @param {HTMLElement | SVGElement} b
|
|
314
293
|
*/
|
|
315
294
|
function compare(a, b) {
|
|
316
295
|
if (a === b) throw new Error("Cannot compare node with itself");
|
|
@@ -348,7 +327,7 @@ function compare(a, b) {
|
|
|
348
327
|
}
|
|
349
328
|
const props = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
|
|
350
329
|
|
|
351
|
-
/** @param {HTMLElement} node */
|
|
330
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
352
331
|
function is_flex_item(node) {
|
|
353
332
|
var _get_parent;
|
|
354
333
|
// @ts-ignore
|
|
@@ -356,7 +335,7 @@ function is_flex_item(node) {
|
|
|
356
335
|
return display === "flex" || display === "inline-flex";
|
|
357
336
|
}
|
|
358
337
|
|
|
359
|
-
/** @param {HTMLElement} node */
|
|
338
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
360
339
|
function creates_stacking_context(node) {
|
|
361
340
|
const style = getComputedStyle(node);
|
|
362
341
|
|
|
@@ -381,7 +360,7 @@ function creates_stacking_context(node) {
|
|
|
381
360
|
return false;
|
|
382
361
|
}
|
|
383
362
|
|
|
384
|
-
/** @param {HTMLElement[]} nodes */
|
|
363
|
+
/** @param {(HTMLElement| SVGElement)[]} nodes */
|
|
385
364
|
function find_stacking_context(nodes) {
|
|
386
365
|
let i = nodes.length;
|
|
387
366
|
while (i--) {
|
|
@@ -392,7 +371,7 @@ function find_stacking_context(nodes) {
|
|
|
392
371
|
return null;
|
|
393
372
|
}
|
|
394
373
|
|
|
395
|
-
/** @param {HTMLElement} node */
|
|
374
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
396
375
|
function get_z_index(node) {
|
|
397
376
|
return node && Number(getComputedStyle(node).zIndex) || 0;
|
|
398
377
|
}
|
|
@@ -554,7 +533,7 @@ function recalculateIntersectingHandles({
|
|
|
554
533
|
}) {
|
|
555
534
|
intersectingHandles.splice(0);
|
|
556
535
|
let targetElement = null;
|
|
557
|
-
if (target instanceof HTMLElement) {
|
|
536
|
+
if (target instanceof HTMLElement || target instanceof SVGElement) {
|
|
558
537
|
targetElement = target;
|
|
559
538
|
}
|
|
560
539
|
registeredResizeHandlers.forEach(data => {
|
|
@@ -644,7 +623,9 @@ function updateListeners() {
|
|
|
644
623
|
body
|
|
645
624
|
} = ownerDocument;
|
|
646
625
|
body.removeEventListener("contextmenu", handlePointerUp);
|
|
647
|
-
body.removeEventListener("pointerdown", handlePointerDown
|
|
626
|
+
body.removeEventListener("pointerdown", handlePointerDown, {
|
|
627
|
+
capture: true
|
|
628
|
+
});
|
|
648
629
|
body.removeEventListener("pointerleave", handlePointerMove);
|
|
649
630
|
body.removeEventListener("pointermove", handlePointerMove);
|
|
650
631
|
});
|
|
@@ -2238,8 +2219,11 @@ function PanelResizeHandle({
|
|
|
2238
2219
|
hitAreaMargins,
|
|
2239
2220
|
id: idFromProps,
|
|
2240
2221
|
onBlur,
|
|
2222
|
+
onClick,
|
|
2241
2223
|
onDragging,
|
|
2242
2224
|
onFocus,
|
|
2225
|
+
onPointerDown,
|
|
2226
|
+
onPointerUp,
|
|
2243
2227
|
style: styleFromProps = {},
|
|
2244
2228
|
tabIndex = 0,
|
|
2245
2229
|
tagName: Type = "div",
|
|
@@ -2250,10 +2234,16 @@ function PanelResizeHandle({
|
|
|
2250
2234
|
|
|
2251
2235
|
// Use a ref to guard against users passing inline props
|
|
2252
2236
|
const callbacksRef = useRef({
|
|
2253
|
-
|
|
2237
|
+
onClick,
|
|
2238
|
+
onDragging,
|
|
2239
|
+
onPointerDown,
|
|
2240
|
+
onPointerUp
|
|
2254
2241
|
});
|
|
2255
2242
|
useEffect(() => {
|
|
2243
|
+
callbacksRef.current.onClick = onClick;
|
|
2256
2244
|
callbacksRef.current.onDragging = onDragging;
|
|
2245
|
+
callbacksRef.current.onPointerDown = onPointerDown;
|
|
2246
|
+
callbacksRef.current.onPointerUp = onPointerUp;
|
|
2257
2247
|
});
|
|
2258
2248
|
const panelGroupContext = useContext(PanelGroupContext);
|
|
2259
2249
|
if (panelGroupContext === null) {
|
|
@@ -2296,20 +2286,22 @@ function PanelResizeHandle({
|
|
|
2296
2286
|
}
|
|
2297
2287
|
const element = elementRef.current;
|
|
2298
2288
|
assert(element, "Element ref not attached");
|
|
2289
|
+
let didMove = false;
|
|
2299
2290
|
const setResizeHandlerState = (action, isActive, event) => {
|
|
2300
2291
|
if (isActive) {
|
|
2301
2292
|
switch (action) {
|
|
2302
2293
|
case "down":
|
|
2303
2294
|
{
|
|
2304
2295
|
setState("drag");
|
|
2296
|
+
didMove = false;
|
|
2305
2297
|
assert(event, 'Expected event to be defined for "down" action');
|
|
2306
2298
|
startDragging(resizeHandleId, event);
|
|
2307
2299
|
const {
|
|
2308
|
-
onDragging
|
|
2300
|
+
onDragging,
|
|
2301
|
+
onPointerDown
|
|
2309
2302
|
} = callbacksRef.current;
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
}
|
|
2303
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(true);
|
|
2304
|
+
onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown();
|
|
2313
2305
|
break;
|
|
2314
2306
|
}
|
|
2315
2307
|
case "move":
|
|
@@ -2317,6 +2309,7 @@ function PanelResizeHandle({
|
|
|
2317
2309
|
const {
|
|
2318
2310
|
state
|
|
2319
2311
|
} = committedValuesRef.current;
|
|
2312
|
+
didMove = true;
|
|
2320
2313
|
if (state !== "drag") {
|
|
2321
2314
|
setState("hover");
|
|
2322
2315
|
}
|
|
@@ -2329,10 +2322,14 @@ function PanelResizeHandle({
|
|
|
2329
2322
|
setState("hover");
|
|
2330
2323
|
stopDragging();
|
|
2331
2324
|
const {
|
|
2332
|
-
|
|
2325
|
+
onClick,
|
|
2326
|
+
onDragging,
|
|
2327
|
+
onPointerUp
|
|
2333
2328
|
} = callbacksRef.current;
|
|
2334
|
-
|
|
2335
|
-
|
|
2329
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(false);
|
|
2330
|
+
onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp();
|
|
2331
|
+
if (!didMove) {
|
|
2332
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
2336
2333
|
}
|
|
2337
2334
|
break;
|
|
2338
2335
|
}
|