@dnd-kit/react 0.1.17 → 0.1.18-beta-20250523021607
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/index.cjs +41 -35
- package/index.js +44 -38
- package/package.json +4 -4
package/index.cjs
CHANGED
|
@@ -43,41 +43,42 @@ var defaultManager = new dom.DragDropManager();
|
|
|
43
43
|
var DragDropContext = react.createContext(
|
|
44
44
|
defaultManager
|
|
45
45
|
);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
46
|
+
var Renderer = react.memo(
|
|
47
|
+
react.forwardRef(({ children }, ref) => {
|
|
48
|
+
const [transitionCount, setTransitionCount] = react.useState(0);
|
|
49
|
+
const rendering = react.useRef(null);
|
|
50
|
+
const resolver = react.useRef(null);
|
|
51
|
+
const renderer = react.useMemo(
|
|
52
|
+
() => ({
|
|
53
|
+
renderer: {
|
|
54
|
+
get rendering() {
|
|
55
|
+
var _a2;
|
|
56
|
+
return (_a2 = rendering.current) != null ? _a2 : Promise.resolve();
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
trackRendering(callback) {
|
|
60
|
+
if (!rendering.current) {
|
|
61
|
+
rendering.current = new Promise((resolve) => {
|
|
62
|
+
resolver.current = resolve;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
react.startTransition(() => {
|
|
66
|
+
callback();
|
|
67
|
+
setTransitionCount((count) => count + 1);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}),
|
|
71
|
+
[]
|
|
72
|
+
);
|
|
73
|
+
hooks.useIsomorphicLayoutEffect(() => {
|
|
60
74
|
var _a2;
|
|
61
75
|
(_a2 = resolver.current) == null ? void 0 : _a2.call(resolver);
|
|
62
76
|
rendering.current = null;
|
|
63
|
-
},
|
|
64
|
-
react.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
trackRendering(callback) {
|
|
69
|
-
if (!rendering.current) {
|
|
70
|
-
rendering.current = new Promise((resolve) => {
|
|
71
|
-
resolver.current = resolve;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
startTransition2(() => {
|
|
75
|
-
callback();
|
|
76
|
-
setTransitionCount((count) => count + 1);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
77
|
+
}, [children, transitionCount]);
|
|
78
|
+
react.useImperativeHandle(ref, () => renderer);
|
|
79
|
+
return null;
|
|
80
|
+
})
|
|
81
|
+
);
|
|
81
82
|
var options = [void 0, state.deepEqual];
|
|
82
83
|
function DragDropProvider(_a2) {
|
|
83
84
|
var _b = _a2, {
|
|
@@ -98,7 +99,7 @@ function DragDropProvider(_a2) {
|
|
|
98
99
|
"onDragEnd"
|
|
99
100
|
]);
|
|
100
101
|
var _a3;
|
|
101
|
-
const
|
|
102
|
+
const rendererRef = react.useRef(null);
|
|
102
103
|
const [manager, setManager] = react.useState(
|
|
103
104
|
(_a3 = input.manager) != null ? _a3 : null
|
|
104
105
|
);
|
|
@@ -111,6 +112,8 @@ function DragDropProvider(_a2) {
|
|
|
111
112
|
const handleCollision = hooks.useLatest(onCollision);
|
|
112
113
|
react.useEffect(() => {
|
|
113
114
|
var _a4;
|
|
115
|
+
if (!rendererRef.current) throw new Error("Renderer not found");
|
|
116
|
+
const { renderer, trackRendering } = rendererRef.current;
|
|
114
117
|
const manager2 = (_a4 = input.manager) != null ? _a4 : new dom.DragDropManager(input);
|
|
115
118
|
manager2.renderer = renderer;
|
|
116
119
|
manager2.monitor.addEventListener("beforedragstart", (event, manager3) => {
|
|
@@ -153,7 +156,7 @@ function DragDropProvider(_a2) {
|
|
|
153
156
|
);
|
|
154
157
|
react.startTransition(() => setManager(manager2));
|
|
155
158
|
return manager2.destroy;
|
|
156
|
-
}, [
|
|
159
|
+
}, [input.manager]);
|
|
157
160
|
hooks.useOnValueChange(
|
|
158
161
|
plugins,
|
|
159
162
|
() => manager && (manager.plugins = plugins != null ? plugins : dom.defaultPreset.plugins),
|
|
@@ -169,7 +172,10 @@ function DragDropProvider(_a2) {
|
|
|
169
172
|
() => manager && (manager.modifiers = modifiers != null ? modifiers : dom.defaultPreset.modifiers),
|
|
170
173
|
...options
|
|
171
174
|
);
|
|
172
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
175
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(DragDropContext.Provider, { value: manager, children: [
|
|
176
|
+
/* @__PURE__ */ jsxRuntime.jsx(Renderer, { ref: rendererRef, children }),
|
|
177
|
+
children
|
|
178
|
+
] });
|
|
173
179
|
}
|
|
174
180
|
function useDragDropManager() {
|
|
175
181
|
return react.useContext(DragDropContext);
|
package/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { createContext,
|
|
1
|
+
import { createContext, memo, forwardRef, useState, useRef, useMemo, startTransition, useImperativeHandle, useEffect, useContext, useCallback, createElement } from 'react';
|
|
2
2
|
import { DragDropManager, defaultPreset, Draggable, Feedback, Droppable } from '@dnd-kit/dom';
|
|
3
3
|
export { KeyboardSensor, PointerSensor } from '@dnd-kit/dom';
|
|
4
|
-
import { useLatest, useOnValueChange,
|
|
4
|
+
import { useIsomorphicLayoutEffect, useLatest, useOnValueChange, useDeepSignal, useOnElementChange, useComputed } from '@dnd-kit/react/hooks';
|
|
5
5
|
import { deepEqual, ValueHistory, derived, batch } from '@dnd-kit/state';
|
|
6
|
-
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
import { currentValue } from '@dnd-kit/react/utilities';
|
|
8
8
|
import { CollisionPriority, CollisionType } from '@dnd-kit/abstract';
|
|
9
9
|
|
|
@@ -42,41 +42,42 @@ var defaultManager = new DragDropManager();
|
|
|
42
42
|
var DragDropContext = createContext(
|
|
43
43
|
defaultManager
|
|
44
44
|
);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
45
|
+
var Renderer = memo(
|
|
46
|
+
forwardRef(({ children }, ref) => {
|
|
47
|
+
const [transitionCount, setTransitionCount] = useState(0);
|
|
48
|
+
const rendering = useRef(null);
|
|
49
|
+
const resolver = useRef(null);
|
|
50
|
+
const renderer = useMemo(
|
|
51
|
+
() => ({
|
|
52
|
+
renderer: {
|
|
53
|
+
get rendering() {
|
|
54
|
+
var _a2;
|
|
55
|
+
return (_a2 = rendering.current) != null ? _a2 : Promise.resolve();
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
trackRendering(callback) {
|
|
59
|
+
if (!rendering.current) {
|
|
60
|
+
rendering.current = new Promise((resolve) => {
|
|
61
|
+
resolver.current = resolve;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
startTransition(() => {
|
|
65
|
+
callback();
|
|
66
|
+
setTransitionCount((count) => count + 1);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
[]
|
|
71
|
+
);
|
|
72
|
+
useIsomorphicLayoutEffect(() => {
|
|
59
73
|
var _a2;
|
|
60
74
|
(_a2 = resolver.current) == null ? void 0 : _a2.call(resolver);
|
|
61
75
|
rendering.current = null;
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
trackRendering(callback) {
|
|
68
|
-
if (!rendering.current) {
|
|
69
|
-
rendering.current = new Promise((resolve) => {
|
|
70
|
-
resolver.current = resolve;
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
startTransition2(() => {
|
|
74
|
-
callback();
|
|
75
|
-
setTransitionCount((count) => count + 1);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
}
|
|
76
|
+
}, [children, transitionCount]);
|
|
77
|
+
useImperativeHandle(ref, () => renderer);
|
|
78
|
+
return null;
|
|
79
|
+
})
|
|
80
|
+
);
|
|
80
81
|
var options = [void 0, deepEqual];
|
|
81
82
|
function DragDropProvider(_a2) {
|
|
82
83
|
var _b = _a2, {
|
|
@@ -97,7 +98,7 @@ function DragDropProvider(_a2) {
|
|
|
97
98
|
"onDragEnd"
|
|
98
99
|
]);
|
|
99
100
|
var _a3;
|
|
100
|
-
const
|
|
101
|
+
const rendererRef = useRef(null);
|
|
101
102
|
const [manager, setManager] = useState(
|
|
102
103
|
(_a3 = input.manager) != null ? _a3 : null
|
|
103
104
|
);
|
|
@@ -110,6 +111,8 @@ function DragDropProvider(_a2) {
|
|
|
110
111
|
const handleCollision = useLatest(onCollision);
|
|
111
112
|
useEffect(() => {
|
|
112
113
|
var _a4;
|
|
114
|
+
if (!rendererRef.current) throw new Error("Renderer not found");
|
|
115
|
+
const { renderer, trackRendering } = rendererRef.current;
|
|
113
116
|
const manager2 = (_a4 = input.manager) != null ? _a4 : new DragDropManager(input);
|
|
114
117
|
manager2.renderer = renderer;
|
|
115
118
|
manager2.monitor.addEventListener("beforedragstart", (event, manager3) => {
|
|
@@ -152,7 +155,7 @@ function DragDropProvider(_a2) {
|
|
|
152
155
|
);
|
|
153
156
|
startTransition(() => setManager(manager2));
|
|
154
157
|
return manager2.destroy;
|
|
155
|
-
}, [
|
|
158
|
+
}, [input.manager]);
|
|
156
159
|
useOnValueChange(
|
|
157
160
|
plugins,
|
|
158
161
|
() => manager && (manager.plugins = plugins != null ? plugins : defaultPreset.plugins),
|
|
@@ -168,7 +171,10 @@ function DragDropProvider(_a2) {
|
|
|
168
171
|
() => manager && (manager.modifiers = modifiers != null ? modifiers : defaultPreset.modifiers),
|
|
169
172
|
...options
|
|
170
173
|
);
|
|
171
|
-
return /* @__PURE__ */
|
|
174
|
+
return /* @__PURE__ */ jsxs(DragDropContext.Provider, { value: manager, children: [
|
|
175
|
+
/* @__PURE__ */ jsx(Renderer, { ref: rendererRef, children }),
|
|
176
|
+
children
|
|
177
|
+
] });
|
|
172
178
|
}
|
|
173
179
|
function useDragDropManager() {
|
|
174
180
|
return useContext(DragDropContext);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dnd-kit/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18-beta-20250523021607",
|
|
4
4
|
"main": "./index.cjs",
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@dnd-kit/abstract": "
|
|
60
|
-
"@dnd-kit/dom": "
|
|
61
|
-
"@dnd-kit/state": "
|
|
59
|
+
"@dnd-kit/abstract": "0.1.18-beta-20250523021607",
|
|
60
|
+
"@dnd-kit/dom": "0.1.18-beta-20250523021607",
|
|
61
|
+
"@dnd-kit/state": "0.1.18-beta-20250523021607",
|
|
62
62
|
"tslib": "^2.6.2"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|