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,35 +1,14 @@
|
|
|
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)];
|
|
24
|
-
const useLayoutEffect_do_not_use_directly = useLayoutEffect;
|
|
2
|
+
import { createContext, useLayoutEffect, useRef, forwardRef, createElement, useContext, useImperativeHandle, useState, useCallback, useEffect, useMemo } from 'react';
|
|
25
3
|
|
|
26
4
|
// The "contextmenu" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled
|
|
27
5
|
|
|
28
6
|
const PanelGroupContext = createContext(null);
|
|
29
7
|
PanelGroupContext.displayName = "PanelGroupContext";
|
|
30
8
|
|
|
31
|
-
const useIsomorphicLayoutEffect =
|
|
9
|
+
const useIsomorphicLayoutEffect = useLayoutEffect ;
|
|
32
10
|
|
|
11
|
+
const useId = React["useId".toString()];
|
|
33
12
|
const wrappedUseId = typeof useId === "function" ? useId : () => null;
|
|
34
13
|
let counter = 0;
|
|
35
14
|
function useUniqueId(idFromParams = null) {
|
|
@@ -163,7 +142,7 @@ function PanelWithForwardedRef({
|
|
|
163
142
|
...rest,
|
|
164
143
|
children,
|
|
165
144
|
className: classNameFromProps,
|
|
166
|
-
id:
|
|
145
|
+
id: panelId,
|
|
167
146
|
style: {
|
|
168
147
|
...style,
|
|
169
148
|
...styleFromProps
|
|
@@ -313,8 +292,8 @@ function intersects(rectOne, rectTwo, strict) {
|
|
|
313
292
|
/**
|
|
314
293
|
* Determine which of two nodes appears in front of the other —
|
|
315
294
|
* if `a` is in front, returns 1, otherwise returns -1
|
|
316
|
-
* @param {HTMLElement} a
|
|
317
|
-
* @param {HTMLElement} b
|
|
295
|
+
* @param {HTMLElement | SVGElement} a
|
|
296
|
+
* @param {HTMLElement | SVGElement} b
|
|
318
297
|
*/
|
|
319
298
|
function compare(a, b) {
|
|
320
299
|
if (a === b) throw new Error("Cannot compare node with itself");
|
|
@@ -352,7 +331,7 @@ function compare(a, b) {
|
|
|
352
331
|
}
|
|
353
332
|
const props = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
|
|
354
333
|
|
|
355
|
-
/** @param {HTMLElement} node */
|
|
334
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
356
335
|
function is_flex_item(node) {
|
|
357
336
|
var _get_parent;
|
|
358
337
|
// @ts-ignore
|
|
@@ -360,7 +339,7 @@ function is_flex_item(node) {
|
|
|
360
339
|
return display === "flex" || display === "inline-flex";
|
|
361
340
|
}
|
|
362
341
|
|
|
363
|
-
/** @param {HTMLElement} node */
|
|
342
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
364
343
|
function creates_stacking_context(node) {
|
|
365
344
|
const style = getComputedStyle(node);
|
|
366
345
|
|
|
@@ -385,7 +364,7 @@ function creates_stacking_context(node) {
|
|
|
385
364
|
return false;
|
|
386
365
|
}
|
|
387
366
|
|
|
388
|
-
/** @param {HTMLElement[]} nodes */
|
|
367
|
+
/** @param {(HTMLElement| SVGElement)[]} nodes */
|
|
389
368
|
function find_stacking_context(nodes) {
|
|
390
369
|
let i = nodes.length;
|
|
391
370
|
while (i--) {
|
|
@@ -396,7 +375,7 @@ function find_stacking_context(nodes) {
|
|
|
396
375
|
return null;
|
|
397
376
|
}
|
|
398
377
|
|
|
399
|
-
/** @param {HTMLElement} node */
|
|
378
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
400
379
|
function get_z_index(node) {
|
|
401
380
|
return node && Number(getComputedStyle(node).zIndex) || 0;
|
|
402
381
|
}
|
|
@@ -558,7 +537,7 @@ function recalculateIntersectingHandles({
|
|
|
558
537
|
}) {
|
|
559
538
|
intersectingHandles.splice(0);
|
|
560
539
|
let targetElement = null;
|
|
561
|
-
if (target instanceof HTMLElement) {
|
|
540
|
+
if (target instanceof HTMLElement || target instanceof SVGElement) {
|
|
562
541
|
targetElement = target;
|
|
563
542
|
}
|
|
564
543
|
registeredResizeHandlers.forEach(data => {
|
|
@@ -648,7 +627,9 @@ function updateListeners() {
|
|
|
648
627
|
body
|
|
649
628
|
} = ownerDocument;
|
|
650
629
|
body.removeEventListener("contextmenu", handlePointerUp);
|
|
651
|
-
body.removeEventListener("pointerdown", handlePointerDown
|
|
630
|
+
body.removeEventListener("pointerdown", handlePointerDown, {
|
|
631
|
+
capture: true
|
|
632
|
+
});
|
|
652
633
|
body.removeEventListener("pointerleave", handlePointerMove);
|
|
653
634
|
body.removeEventListener("pointermove", handlePointerMove);
|
|
654
635
|
});
|
|
@@ -2342,8 +2323,11 @@ function PanelResizeHandle({
|
|
|
2342
2323
|
hitAreaMargins,
|
|
2343
2324
|
id: idFromProps,
|
|
2344
2325
|
onBlur,
|
|
2326
|
+
onClick,
|
|
2345
2327
|
onDragging,
|
|
2346
2328
|
onFocus,
|
|
2329
|
+
onPointerDown,
|
|
2330
|
+
onPointerUp,
|
|
2347
2331
|
style: styleFromProps = {},
|
|
2348
2332
|
tabIndex = 0,
|
|
2349
2333
|
tagName: Type = "div",
|
|
@@ -2354,10 +2338,16 @@ function PanelResizeHandle({
|
|
|
2354
2338
|
|
|
2355
2339
|
// Use a ref to guard against users passing inline props
|
|
2356
2340
|
const callbacksRef = useRef({
|
|
2357
|
-
|
|
2341
|
+
onClick,
|
|
2342
|
+
onDragging,
|
|
2343
|
+
onPointerDown,
|
|
2344
|
+
onPointerUp
|
|
2358
2345
|
});
|
|
2359
2346
|
useEffect(() => {
|
|
2347
|
+
callbacksRef.current.onClick = onClick;
|
|
2360
2348
|
callbacksRef.current.onDragging = onDragging;
|
|
2349
|
+
callbacksRef.current.onPointerDown = onPointerDown;
|
|
2350
|
+
callbacksRef.current.onPointerUp = onPointerUp;
|
|
2361
2351
|
});
|
|
2362
2352
|
const panelGroupContext = useContext(PanelGroupContext);
|
|
2363
2353
|
if (panelGroupContext === null) {
|
|
@@ -2400,20 +2390,22 @@ function PanelResizeHandle({
|
|
|
2400
2390
|
}
|
|
2401
2391
|
const element = elementRef.current;
|
|
2402
2392
|
assert(element, "Element ref not attached");
|
|
2393
|
+
let didMove = false;
|
|
2403
2394
|
const setResizeHandlerState = (action, isActive, event) => {
|
|
2404
2395
|
if (isActive) {
|
|
2405
2396
|
switch (action) {
|
|
2406
2397
|
case "down":
|
|
2407
2398
|
{
|
|
2408
2399
|
setState("drag");
|
|
2400
|
+
didMove = false;
|
|
2409
2401
|
assert(event, 'Expected event to be defined for "down" action');
|
|
2410
2402
|
startDragging(resizeHandleId, event);
|
|
2411
2403
|
const {
|
|
2412
|
-
onDragging
|
|
2404
|
+
onDragging,
|
|
2405
|
+
onPointerDown
|
|
2413
2406
|
} = callbacksRef.current;
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
}
|
|
2407
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(true);
|
|
2408
|
+
onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown();
|
|
2417
2409
|
break;
|
|
2418
2410
|
}
|
|
2419
2411
|
case "move":
|
|
@@ -2421,6 +2413,7 @@ function PanelResizeHandle({
|
|
|
2421
2413
|
const {
|
|
2422
2414
|
state
|
|
2423
2415
|
} = committedValuesRef.current;
|
|
2416
|
+
didMove = true;
|
|
2424
2417
|
if (state !== "drag") {
|
|
2425
2418
|
setState("hover");
|
|
2426
2419
|
}
|
|
@@ -2433,10 +2426,14 @@ function PanelResizeHandle({
|
|
|
2433
2426
|
setState("hover");
|
|
2434
2427
|
stopDragging();
|
|
2435
2428
|
const {
|
|
2436
|
-
|
|
2429
|
+
onClick,
|
|
2430
|
+
onDragging,
|
|
2431
|
+
onPointerUp
|
|
2437
2432
|
} = callbacksRef.current;
|
|
2438
|
-
|
|
2439
|
-
|
|
2433
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(false);
|
|
2434
|
+
onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp();
|
|
2435
|
+
if (!didMove) {
|
|
2436
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
2440
2437
|
}
|
|
2441
2438
|
break;
|
|
2442
2439
|
}
|
|
@@ -1,35 +1,14 @@
|
|
|
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)];
|
|
24
|
-
const useLayoutEffect_do_not_use_directly = useLayoutEffect;
|
|
2
|
+
import { createContext, useLayoutEffect, useRef, forwardRef, createElement, useContext, useImperativeHandle, useState, useCallback, useEffect, useMemo } from 'react';
|
|
25
3
|
|
|
26
4
|
// The "contextmenu" event is not supported as a PointerEvent in all browsers yet, so MouseEvent still need to be handled
|
|
27
5
|
|
|
28
6
|
const PanelGroupContext = createContext(null);
|
|
29
7
|
PanelGroupContext.displayName = "PanelGroupContext";
|
|
30
8
|
|
|
31
|
-
const useIsomorphicLayoutEffect =
|
|
9
|
+
const useIsomorphicLayoutEffect = useLayoutEffect ;
|
|
32
10
|
|
|
11
|
+
const useId = React["useId".toString()];
|
|
33
12
|
const wrappedUseId = typeof useId === "function" ? useId : () => null;
|
|
34
13
|
let counter = 0;
|
|
35
14
|
function useUniqueId(idFromParams = null) {
|
|
@@ -157,7 +136,7 @@ function PanelWithForwardedRef({
|
|
|
157
136
|
...rest,
|
|
158
137
|
children,
|
|
159
138
|
className: classNameFromProps,
|
|
160
|
-
id:
|
|
139
|
+
id: panelId,
|
|
161
140
|
style: {
|
|
162
141
|
...style,
|
|
163
142
|
...styleFromProps
|
|
@@ -307,8 +286,8 @@ function intersects(rectOne, rectTwo, strict) {
|
|
|
307
286
|
/**
|
|
308
287
|
* Determine which of two nodes appears in front of the other —
|
|
309
288
|
* if `a` is in front, returns 1, otherwise returns -1
|
|
310
|
-
* @param {HTMLElement} a
|
|
311
|
-
* @param {HTMLElement} b
|
|
289
|
+
* @param {HTMLElement | SVGElement} a
|
|
290
|
+
* @param {HTMLElement | SVGElement} b
|
|
312
291
|
*/
|
|
313
292
|
function compare(a, b) {
|
|
314
293
|
if (a === b) throw new Error("Cannot compare node with itself");
|
|
@@ -346,7 +325,7 @@ function compare(a, b) {
|
|
|
346
325
|
}
|
|
347
326
|
const props = /\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;
|
|
348
327
|
|
|
349
|
-
/** @param {HTMLElement} node */
|
|
328
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
350
329
|
function is_flex_item(node) {
|
|
351
330
|
var _get_parent;
|
|
352
331
|
// @ts-ignore
|
|
@@ -354,7 +333,7 @@ function is_flex_item(node) {
|
|
|
354
333
|
return display === "flex" || display === "inline-flex";
|
|
355
334
|
}
|
|
356
335
|
|
|
357
|
-
/** @param {HTMLElement} node */
|
|
336
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
358
337
|
function creates_stacking_context(node) {
|
|
359
338
|
const style = getComputedStyle(node);
|
|
360
339
|
|
|
@@ -379,7 +358,7 @@ function creates_stacking_context(node) {
|
|
|
379
358
|
return false;
|
|
380
359
|
}
|
|
381
360
|
|
|
382
|
-
/** @param {HTMLElement[]} nodes */
|
|
361
|
+
/** @param {(HTMLElement| SVGElement)[]} nodes */
|
|
383
362
|
function find_stacking_context(nodes) {
|
|
384
363
|
let i = nodes.length;
|
|
385
364
|
while (i--) {
|
|
@@ -390,7 +369,7 @@ function find_stacking_context(nodes) {
|
|
|
390
369
|
return null;
|
|
391
370
|
}
|
|
392
371
|
|
|
393
|
-
/** @param {HTMLElement} node */
|
|
372
|
+
/** @param {HTMLElement | SVGElement} node */
|
|
394
373
|
function get_z_index(node) {
|
|
395
374
|
return node && Number(getComputedStyle(node).zIndex) || 0;
|
|
396
375
|
}
|
|
@@ -552,7 +531,7 @@ function recalculateIntersectingHandles({
|
|
|
552
531
|
}) {
|
|
553
532
|
intersectingHandles.splice(0);
|
|
554
533
|
let targetElement = null;
|
|
555
|
-
if (target instanceof HTMLElement) {
|
|
534
|
+
if (target instanceof HTMLElement || target instanceof SVGElement) {
|
|
556
535
|
targetElement = target;
|
|
557
536
|
}
|
|
558
537
|
registeredResizeHandlers.forEach(data => {
|
|
@@ -642,7 +621,9 @@ function updateListeners() {
|
|
|
642
621
|
body
|
|
643
622
|
} = ownerDocument;
|
|
644
623
|
body.removeEventListener("contextmenu", handlePointerUp);
|
|
645
|
-
body.removeEventListener("pointerdown", handlePointerDown
|
|
624
|
+
body.removeEventListener("pointerdown", handlePointerDown, {
|
|
625
|
+
capture: true
|
|
626
|
+
});
|
|
646
627
|
body.removeEventListener("pointerleave", handlePointerMove);
|
|
647
628
|
body.removeEventListener("pointermove", handlePointerMove);
|
|
648
629
|
});
|
|
@@ -2236,8 +2217,11 @@ function PanelResizeHandle({
|
|
|
2236
2217
|
hitAreaMargins,
|
|
2237
2218
|
id: idFromProps,
|
|
2238
2219
|
onBlur,
|
|
2220
|
+
onClick,
|
|
2239
2221
|
onDragging,
|
|
2240
2222
|
onFocus,
|
|
2223
|
+
onPointerDown,
|
|
2224
|
+
onPointerUp,
|
|
2241
2225
|
style: styleFromProps = {},
|
|
2242
2226
|
tabIndex = 0,
|
|
2243
2227
|
tagName: Type = "div",
|
|
@@ -2248,10 +2232,16 @@ function PanelResizeHandle({
|
|
|
2248
2232
|
|
|
2249
2233
|
// Use a ref to guard against users passing inline props
|
|
2250
2234
|
const callbacksRef = useRef({
|
|
2251
|
-
|
|
2235
|
+
onClick,
|
|
2236
|
+
onDragging,
|
|
2237
|
+
onPointerDown,
|
|
2238
|
+
onPointerUp
|
|
2252
2239
|
});
|
|
2253
2240
|
useEffect(() => {
|
|
2241
|
+
callbacksRef.current.onClick = onClick;
|
|
2254
2242
|
callbacksRef.current.onDragging = onDragging;
|
|
2243
|
+
callbacksRef.current.onPointerDown = onPointerDown;
|
|
2244
|
+
callbacksRef.current.onPointerUp = onPointerUp;
|
|
2255
2245
|
});
|
|
2256
2246
|
const panelGroupContext = useContext(PanelGroupContext);
|
|
2257
2247
|
if (panelGroupContext === null) {
|
|
@@ -2294,20 +2284,22 @@ function PanelResizeHandle({
|
|
|
2294
2284
|
}
|
|
2295
2285
|
const element = elementRef.current;
|
|
2296
2286
|
assert(element, "Element ref not attached");
|
|
2287
|
+
let didMove = false;
|
|
2297
2288
|
const setResizeHandlerState = (action, isActive, event) => {
|
|
2298
2289
|
if (isActive) {
|
|
2299
2290
|
switch (action) {
|
|
2300
2291
|
case "down":
|
|
2301
2292
|
{
|
|
2302
2293
|
setState("drag");
|
|
2294
|
+
didMove = false;
|
|
2303
2295
|
assert(event, 'Expected event to be defined for "down" action');
|
|
2304
2296
|
startDragging(resizeHandleId, event);
|
|
2305
2297
|
const {
|
|
2306
|
-
onDragging
|
|
2298
|
+
onDragging,
|
|
2299
|
+
onPointerDown
|
|
2307
2300
|
} = callbacksRef.current;
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
}
|
|
2301
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(true);
|
|
2302
|
+
onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown();
|
|
2311
2303
|
break;
|
|
2312
2304
|
}
|
|
2313
2305
|
case "move":
|
|
@@ -2315,6 +2307,7 @@ function PanelResizeHandle({
|
|
|
2315
2307
|
const {
|
|
2316
2308
|
state
|
|
2317
2309
|
} = committedValuesRef.current;
|
|
2310
|
+
didMove = true;
|
|
2318
2311
|
if (state !== "drag") {
|
|
2319
2312
|
setState("hover");
|
|
2320
2313
|
}
|
|
@@ -2327,10 +2320,14 @@ function PanelResizeHandle({
|
|
|
2327
2320
|
setState("hover");
|
|
2328
2321
|
stopDragging();
|
|
2329
2322
|
const {
|
|
2330
|
-
|
|
2323
|
+
onClick,
|
|
2324
|
+
onDragging,
|
|
2325
|
+
onPointerUp
|
|
2331
2326
|
} = callbacksRef.current;
|
|
2332
|
-
|
|
2333
|
-
|
|
2327
|
+
onDragging === null || onDragging === void 0 ? void 0 : onDragging(false);
|
|
2328
|
+
onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp();
|
|
2329
|
+
if (!didMove) {
|
|
2330
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
2334
2331
|
}
|
|
2335
2332
|
break;
|
|
2336
2333
|
}
|