@dnd-kit/react 0.0.4-beta-20240621131401 → 0.0.4-beta-20240622155137

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 CHANGED
@@ -4,13 +4,12 @@ var react = require('react');
4
4
  var dom = require('@dnd-kit/dom');
5
5
  var hooks = require('@dnd-kit/react/hooks');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
- var utilities = require('@dnd-kit/react/utilities');
8
7
  var state = require('@dnd-kit/state');
8
+ var utilities = require('@dnd-kit/react/utilities');
9
9
 
10
10
  var __defProp = Object.defineProperty;
11
11
  var __defProps = Object.defineProperties;
12
12
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
13
- var __getOwnPropNames = Object.getOwnPropertyNames;
14
13
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
15
14
  var __hasOwnProp = Object.prototype.hasOwnProperty;
16
15
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -39,22 +38,9 @@ var __objRest = (source, exclude) => {
39
38
  }
40
39
  return target;
41
40
  };
42
- var __esm = (fn, res) => function __init() {
43
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
44
- };
45
- var __export = (target, all) => {
46
- for (var name in all)
47
- __defProp(target, name, { get: all[name], enumerable: true });
48
- };
49
- var DragDropContext;
50
- var init_context = __esm({
51
- "src/core/context/context.ts"() {
52
- "use client";
53
- DragDropContext = react.createContext(
54
- new dom.DragDropManager()
55
- );
56
- }
57
- });
41
+ var DragDropContext = react.createContext(
42
+ new dom.DragDropManager()
43
+ );
58
44
  function useRenderer() {
59
45
  const [_, startTransition2] = react.useTransition();
60
46
  const [transitionCount, setTransitionCount] = react.useState(0);
@@ -86,16 +72,6 @@ function useRenderer() {
86
72
  }
87
73
  };
88
74
  }
89
- var init_renderer = __esm({
90
- "src/core/context/renderer.ts"() {
91
- }
92
- });
93
-
94
- // src/core/context/DragDropProvider.tsx
95
- var DragDropProvider_exports = {};
96
- __export(DragDropProvider_exports, {
97
- default: () => DragDropProvider
98
- });
99
75
  function DragDropProvider(_a) {
100
76
  var _b = _a, {
101
77
  children,
@@ -185,16 +161,6 @@ function DragDropProvider(_a) {
185
161
  );
186
162
  return /* @__PURE__ */ jsxRuntime.jsx(DragDropContext.Provider, { value: manager, children });
187
163
  }
188
- var init_DragDropProvider = __esm({
189
- "src/core/context/DragDropProvider.tsx"() {
190
- init_context();
191
- init_renderer();
192
- }
193
- });
194
- var DragDropProvider2 = react.lazy(() => Promise.resolve().then(() => (init_DragDropProvider(), DragDropProvider_exports)));
195
-
196
- // src/core/hooks/useDragDropManager.ts
197
- init_context();
198
164
  function useDragDropManager() {
199
165
  return react.useContext(DragDropContext);
200
166
  }
@@ -203,33 +169,34 @@ function useDragDropManager() {
203
169
  function useInstance(initializer) {
204
170
  var _a;
205
171
  const manager = (_a = useDragDropManager()) != null ? _a : void 0;
206
- const [instance] = react.useState(() => initializer(manager));
172
+ const [instance] = react.useState(() => initializer());
207
173
  react.useEffect(() => {
208
174
  instance.manager = manager;
209
175
  return manager == null ? void 0 : manager.registry.register(instance);
210
176
  }, [instance, manager]);
211
177
  return instance;
212
178
  }
179
+
180
+ // src/core/draggable/useDraggable.ts
213
181
  function useDraggable(input) {
214
- const { disabled, id, modifiers, sensors } = input;
182
+ const { disabled, data, id, modifiers, sensors } = input;
215
183
  const handle = utilities.currentValue(input.handle);
216
184
  const element = utilities.currentValue(input.element);
217
185
  const draggable = useInstance(
218
- (manager) => new dom.Draggable(
186
+ () => new dom.Draggable(
219
187
  __spreadProps(__spreadValues({}, input), {
220
188
  handle,
221
- element,
222
- options: __spreadProps(__spreadValues({}, input.options), {
223
- register: false
224
- })
189
+ element
225
190
  }),
226
- manager
191
+ void 0
227
192
  )
228
193
  );
229
194
  const isDragSource = hooks.useComputed(() => draggable.isDragSource);
195
+ const status = hooks.useComputed(() => draggable.status);
230
196
  hooks.useOnValueChange(id, () => draggable.id = id);
231
197
  hooks.useOnValueChange(handle, () => draggable.handle = handle);
232
198
  hooks.useOnValueChange(element, () => draggable.element = element);
199
+ hooks.useOnValueChange(data, () => data && (draggable.data = data));
233
200
  hooks.useOnValueChange(disabled, () => draggable.disabled = disabled === true);
234
201
  hooks.useOnValueChange(sensors, () => draggable.sensors = sensors);
235
202
  hooks.useOnValueChange(
@@ -250,6 +217,9 @@ function useDraggable(input) {
250
217
  get isDragSource() {
251
218
  return isDragSource.value;
252
219
  },
220
+ get status() {
221
+ return status.value;
222
+ },
253
223
  handleRef: react.useCallback(
254
224
  (element2) => {
255
225
  draggable.handle = element2 != null ? element2 : void 0;
@@ -265,23 +235,21 @@ function useDraggable(input) {
265
235
  };
266
236
  }
267
237
  function useDroppable(input) {
268
- const { collisionDetector, disabled, id, accept, type } = input;
238
+ const { collisionDetector, data, disabled, id, accept, type } = input;
269
239
  const element = utilities.currentValue(input.element);
270
240
  const droppable = useInstance(
271
- (manager) => new dom.Droppable(
241
+ () => new dom.Droppable(
272
242
  __spreadProps(__spreadValues({}, input), {
273
- element,
274
- options: __spreadProps(__spreadValues({}, input.options), {
275
- register: false
276
- })
243
+ element
277
244
  }),
278
- manager
245
+ void 0
279
246
  )
280
247
  );
281
248
  const isDropTarget = hooks.useComputed(() => droppable.isDropTarget);
282
249
  hooks.useOnValueChange(id, () => droppable.id = id);
283
250
  hooks.useOnValueChange(accept, () => droppable.id = id, void 0, state.deepEqual);
284
251
  hooks.useOnValueChange(collisionDetector, () => droppable.id = id);
252
+ hooks.useOnValueChange(data, () => data && (droppable.data = data));
285
253
  hooks.useOnValueChange(disabled, () => droppable.disabled = disabled === true);
286
254
  hooks.useOnValueChange(element, () => droppable.element = element);
287
255
  hooks.useOnValueChange(type, () => droppable.id = id);
@@ -312,7 +280,7 @@ function useDragOperation() {
312
280
  };
313
281
  }
314
282
 
315
- exports.DragDropProvider = DragDropProvider2;
283
+ exports.DragDropProvider = DragDropProvider;
316
284
  exports.useDragDropManager = useDragDropManager;
317
285
  exports.useDragOperation = useDragOperation;
318
286
  exports.useDraggable = useDraggable;
package/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import * as react from 'react';
2
- import { PropsWithChildren } from 'react';
3
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PropsWithChildren } from 'react';
4
3
  import * as _dnd_kit_abstract from '@dnd-kit/abstract';
5
4
  import { DragDropEvents, Data } from '@dnd-kit/abstract';
6
5
  import * as _dnd_kit_dom from '@dnd-kit/dom';
@@ -17,9 +16,7 @@ interface Props extends DragDropManagerInput, PropsWithChildren {
17
16
  onDragOver?: Events['dragover'];
18
17
  onDragEnd?: Events['dragend'];
19
18
  }
20
- declare function DragDropProvider$1({ children, onCollision, onBeforeDragStart, onDragStart, onDragMove, onDragOver, onDragEnd, ...input }: Props): react_jsx_runtime.JSX.Element;
21
-
22
- declare const DragDropProvider: react.LazyExoticComponent<typeof DragDropProvider$1>;
19
+ declare function DragDropProvider({ children, onCollision, onBeforeDragStart, onDragStart, onDragMove, onDragOver, onDragEnd, ...input }: Props): react_jsx_runtime.JSX.Element;
23
20
 
24
21
  interface UseDraggableInput<T extends Data = Data> extends Omit<DraggableInput<T>, 'handle' | 'element'> {
25
22
  handle?: RefOrValue<Element>;
@@ -28,6 +25,7 @@ interface UseDraggableInput<T extends Data = Data> extends Omit<DraggableInput<T
28
25
  declare function useDraggable<T extends Data = Data>(input: UseDraggableInput<T>): {
29
26
  draggable: Draggable<T>;
30
27
  readonly isDragSource: boolean;
28
+ readonly status: "idle" | "dragging" | "dropping";
31
29
  handleRef: (element: Element | null) => void;
32
30
  ref: (element: Element | null) => void;
33
31
  };
package/index.js CHANGED
@@ -1,11 +1,164 @@
1
- import { DragDropContext, __spreadProps, __spreadValues } from './chunk-56SCTCQE.js';
2
- import { lazy, useContext, useCallback, useState, useEffect } from 'react';
3
- import { Draggable, Droppable } from '@dnd-kit/dom';
4
- import { useComputed, useOnValueChange } from '@dnd-kit/react/hooks';
5
- import { currentValue } from '@dnd-kit/react/utilities';
1
+ import { createContext, useState, useEffect, startTransition, useContext, useCallback, useTransition, useRef } from 'react';
2
+ import { DragDropManager, defaultPreset, Draggable, Droppable } from '@dnd-kit/dom';
3
+ import { useLatest, useOnValueChange, useComputed, useConstant } from '@dnd-kit/react/hooks';
4
+ import { jsx } from 'react/jsx-runtime';
6
5
  import { deepEqual } from '@dnd-kit/state';
6
+ import { currentValue } from '@dnd-kit/react/utilities';
7
7
 
8
- var DragDropProvider = lazy(() => import('./DragDropProvider-B4S6ULO6.js'));
8
+ var __defProp = Object.defineProperty;
9
+ var __defProps = Object.defineProperties;
10
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
+ var __objRest = (source, exclude) => {
28
+ var target = {};
29
+ for (var prop in source)
30
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
31
+ target[prop] = source[prop];
32
+ if (source != null && __getOwnPropSymbols)
33
+ for (var prop of __getOwnPropSymbols(source)) {
34
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
35
+ target[prop] = source[prop];
36
+ }
37
+ return target;
38
+ };
39
+ var DragDropContext = createContext(
40
+ new DragDropManager()
41
+ );
42
+ function useRenderer() {
43
+ const [_, startTransition2] = useTransition();
44
+ const [transitionCount, setTransitionCount] = useState(0);
45
+ const rendering = useRef();
46
+ const resolver = useRef();
47
+ const renderer = useConstant(() => ({
48
+ get rendering() {
49
+ var _a;
50
+ return (_a = rendering.current) != null ? _a : Promise.resolve();
51
+ }
52
+ }));
53
+ useOnValueChange(transitionCount, () => {
54
+ var _a;
55
+ (_a = resolver.current) == null ? void 0 : _a.call(resolver);
56
+ rendering.current = void 0;
57
+ });
58
+ return {
59
+ renderer,
60
+ trackRendering(callback) {
61
+ if (!rendering.current) {
62
+ rendering.current = new Promise((resolve) => {
63
+ resolver.current = resolve;
64
+ });
65
+ }
66
+ startTransition2(() => {
67
+ callback();
68
+ setTransitionCount((count) => count + 1);
69
+ });
70
+ }
71
+ };
72
+ }
73
+ function DragDropProvider(_a) {
74
+ var _b = _a, {
75
+ children,
76
+ onCollision,
77
+ onBeforeDragStart,
78
+ onDragStart,
79
+ onDragMove,
80
+ onDragOver,
81
+ onDragEnd
82
+ } = _b, input = __objRest(_b, [
83
+ "children",
84
+ "onCollision",
85
+ "onBeforeDragStart",
86
+ "onDragStart",
87
+ "onDragMove",
88
+ "onDragOver",
89
+ "onDragEnd"
90
+ ]);
91
+ var _a2;
92
+ const { renderer, trackRendering } = useRenderer();
93
+ const [manager, setManager] = useState(
94
+ (_a2 = input.manager) != null ? _a2 : null
95
+ );
96
+ const { plugins, modifiers, sensors } = input;
97
+ const handleBeforeDragStart = useLatest(onBeforeDragStart);
98
+ const handleDragStart = useLatest(onDragStart);
99
+ const handleDragOver = useLatest(onDragOver);
100
+ const handleDragMove = useLatest(onDragMove);
101
+ const handleDragEnd = useLatest(onDragEnd);
102
+ const handleCollision = useLatest(onCollision);
103
+ useEffect(() => {
104
+ var _a3;
105
+ const manager2 = (_a3 = input.manager) != null ? _a3 : new DragDropManager(input);
106
+ manager2.renderer = renderer;
107
+ manager2.monitor.addEventListener("beforedragstart", (event, manager3) => {
108
+ const callback = handleBeforeDragStart.current;
109
+ if (callback) {
110
+ trackRendering(() => callback(event, manager3));
111
+ }
112
+ });
113
+ manager2.monitor.addEventListener(
114
+ "dragstart",
115
+ (event, manager3) => {
116
+ var _a4;
117
+ return (_a4 = handleDragStart.current) == null ? void 0 : _a4.call(handleDragStart, event, manager3);
118
+ }
119
+ );
120
+ manager2.monitor.addEventListener("dragover", (event, manager3) => {
121
+ const callback = handleDragOver.current;
122
+ if (callback) {
123
+ trackRendering(() => callback(event, manager3));
124
+ }
125
+ });
126
+ manager2.monitor.addEventListener("dragmove", (event, manager3) => {
127
+ const callback = handleDragMove.current;
128
+ if (callback) {
129
+ trackRendering(() => callback(event, manager3));
130
+ }
131
+ });
132
+ manager2.monitor.addEventListener("dragend", (event, manager3) => {
133
+ const callback = handleDragEnd.current;
134
+ if (callback) {
135
+ trackRendering(() => callback(event, manager3));
136
+ }
137
+ });
138
+ manager2.monitor.addEventListener(
139
+ "collision",
140
+ (event, manager3) => {
141
+ var _a4;
142
+ return (_a4 = handleCollision.current) == null ? void 0 : _a4.call(handleCollision, event, manager3);
143
+ }
144
+ );
145
+ startTransition(() => setManager(manager2));
146
+ return manager2.destroy;
147
+ }, [renderer]);
148
+ useOnValueChange(
149
+ plugins,
150
+ () => manager && (manager.plugins = plugins != null ? plugins : defaultPreset.plugins)
151
+ );
152
+ useOnValueChange(
153
+ sensors,
154
+ () => manager && (manager.sensors = sensors != null ? sensors : defaultPreset.sensors)
155
+ );
156
+ useOnValueChange(
157
+ modifiers,
158
+ () => manager && (manager.modifiers = modifiers != null ? modifiers : [])
159
+ );
160
+ return /* @__PURE__ */ jsx(DragDropContext.Provider, { value: manager, children });
161
+ }
9
162
  function useDragDropManager() {
10
163
  return useContext(DragDropContext);
11
164
  }
@@ -14,33 +167,34 @@ function useDragDropManager() {
14
167
  function useInstance(initializer) {
15
168
  var _a;
16
169
  const manager = (_a = useDragDropManager()) != null ? _a : void 0;
17
- const [instance] = useState(() => initializer(manager));
170
+ const [instance] = useState(() => initializer());
18
171
  useEffect(() => {
19
172
  instance.manager = manager;
20
173
  return manager == null ? void 0 : manager.registry.register(instance);
21
174
  }, [instance, manager]);
22
175
  return instance;
23
176
  }
177
+
178
+ // src/core/draggable/useDraggable.ts
24
179
  function useDraggable(input) {
25
- const { disabled, id, modifiers, sensors } = input;
180
+ const { disabled, data, id, modifiers, sensors } = input;
26
181
  const handle = currentValue(input.handle);
27
182
  const element = currentValue(input.element);
28
183
  const draggable = useInstance(
29
- (manager) => new Draggable(
184
+ () => new Draggable(
30
185
  __spreadProps(__spreadValues({}, input), {
31
186
  handle,
32
- element,
33
- options: __spreadProps(__spreadValues({}, input.options), {
34
- register: false
35
- })
187
+ element
36
188
  }),
37
- manager
189
+ void 0
38
190
  )
39
191
  );
40
192
  const isDragSource = useComputed(() => draggable.isDragSource);
193
+ const status = useComputed(() => draggable.status);
41
194
  useOnValueChange(id, () => draggable.id = id);
42
195
  useOnValueChange(handle, () => draggable.handle = handle);
43
196
  useOnValueChange(element, () => draggable.element = element);
197
+ useOnValueChange(data, () => data && (draggable.data = data));
44
198
  useOnValueChange(disabled, () => draggable.disabled = disabled === true);
45
199
  useOnValueChange(sensors, () => draggable.sensors = sensors);
46
200
  useOnValueChange(
@@ -61,6 +215,9 @@ function useDraggable(input) {
61
215
  get isDragSource() {
62
216
  return isDragSource.value;
63
217
  },
218
+ get status() {
219
+ return status.value;
220
+ },
64
221
  handleRef: useCallback(
65
222
  (element2) => {
66
223
  draggable.handle = element2 != null ? element2 : void 0;
@@ -76,23 +233,21 @@ function useDraggable(input) {
76
233
  };
77
234
  }
78
235
  function useDroppable(input) {
79
- const { collisionDetector, disabled, id, accept, type } = input;
236
+ const { collisionDetector, data, disabled, id, accept, type } = input;
80
237
  const element = currentValue(input.element);
81
238
  const droppable = useInstance(
82
- (manager) => new Droppable(
239
+ () => new Droppable(
83
240
  __spreadProps(__spreadValues({}, input), {
84
- element,
85
- options: __spreadProps(__spreadValues({}, input.options), {
86
- register: false
87
- })
241
+ element
88
242
  }),
89
- manager
243
+ void 0
90
244
  )
91
245
  );
92
246
  const isDropTarget = useComputed(() => droppable.isDropTarget);
93
247
  useOnValueChange(id, () => droppable.id = id);
94
248
  useOnValueChange(accept, () => droppable.id = id, void 0, deepEqual);
95
249
  useOnValueChange(collisionDetector, () => droppable.id = id);
250
+ useOnValueChange(data, () => data && (droppable.data = data));
96
251
  useOnValueChange(disabled, () => droppable.disabled = disabled === true);
97
252
  useOnValueChange(element, () => droppable.element = element);
98
253
  useOnValueChange(type, () => droppable.id = id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnd-kit/react",
3
- "version": "0.0.4-beta-20240621131401",
3
+ "version": "0.0.4-beta-20240622155137",
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": "0.0.4-beta-20240621131401",
60
- "@dnd-kit/dom": "0.0.4-beta-20240621131401",
61
- "@dnd-kit/state": "0.0.4-beta-20240621131401",
59
+ "@dnd-kit/abstract": "0.0.4-beta-20240622155137",
60
+ "@dnd-kit/dom": "0.0.4-beta-20240622155137",
61
+ "@dnd-kit/state": "0.0.4-beta-20240622155137",
62
62
  "tslib": "^2.6.2"
63
63
  },
64
64
  "peerDependencies": {
package/sortable.cjs CHANGED
@@ -51,12 +51,9 @@ function useSortable(input) {
51
51
  handle,
52
52
  element,
53
53
  target,
54
- feedback,
55
- options: __spreadProps(__spreadValues({}, input.options), {
56
- register: false
57
- })
54
+ feedback
58
55
  }),
59
- manager != null ? manager : void 0
56
+ void 0
60
57
  );
61
58
  });
62
59
  react$1.useEffect(() => {
@@ -71,6 +68,7 @@ function useSortable(input) {
71
68
  }, [sortable$1, manager]);
72
69
  const isDropTarget = hooks.useComputed(() => sortable$1.isDropTarget);
73
70
  const isDragSource = hooks.useComputed(() => sortable$1.isDragSource);
71
+ const status = hooks.useComputed(() => sortable$1.status);
74
72
  hooks.useOnValueChange(id, () => sortable$1.id = id);
75
73
  hooks.useOnValueChange(index, () => sortable$1.index = index, hooks.useIsomorphicLayoutEffect);
76
74
  hooks.useOnValueChange(type, () => sortable$1.type = type);
@@ -81,7 +79,7 @@ function useSortable(input) {
81
79
  void 0,
82
80
  state.deepEqual
83
81
  );
84
- hooks.useOnValueChange(data, () => sortable$1.data = data != null ? data : null);
82
+ hooks.useOnValueChange(data, () => data && (sortable$1.data = data));
85
83
  hooks.useOnValueChange(
86
84
  index,
87
85
  () => {
@@ -113,6 +111,9 @@ function useSortable(input) {
113
111
  get isDropTarget() {
114
112
  return isDropTarget.value;
115
113
  },
114
+ get status() {
115
+ return status.value;
116
+ },
116
117
  handleRef: react$1.useCallback(
117
118
  (element2) => {
118
119
  sortable$1.handle = element2 != null ? element2 : void 0;
package/sortable.d.ts CHANGED
@@ -10,6 +10,7 @@ interface UseSortableInput<T extends Data = Data> extends Omit<SortableInput<T>,
10
10
  declare function useSortable<T extends Data = Data>(input: UseSortableInput<T>): {
11
11
  readonly isDragSource: boolean;
12
12
  readonly isDropTarget: boolean;
13
+ readonly status: "idle" | "dragging" | "dropping";
13
14
  handleRef: (element: Element | null) => void;
14
15
  ref: (element: Element | null) => void;
15
16
  sourceRef: (element: Element | null) => void;
package/sortable.js CHANGED
@@ -49,12 +49,9 @@ function useSortable(input) {
49
49
  handle,
50
50
  element,
51
51
  target,
52
- feedback,
53
- options: __spreadProps(__spreadValues({}, input.options), {
54
- register: false
55
- })
52
+ feedback
56
53
  }),
57
- manager != null ? manager : void 0
54
+ void 0
58
55
  );
59
56
  });
60
57
  useEffect(() => {
@@ -69,6 +66,7 @@ function useSortable(input) {
69
66
  }, [sortable, manager]);
70
67
  const isDropTarget = useComputed(() => sortable.isDropTarget);
71
68
  const isDragSource = useComputed(() => sortable.isDragSource);
69
+ const status = useComputed(() => sortable.status);
72
70
  useOnValueChange(id, () => sortable.id = id);
73
71
  useOnValueChange(index, () => sortable.index = index, useIsomorphicLayoutEffect);
74
72
  useOnValueChange(type, () => sortable.type = type);
@@ -79,7 +77,7 @@ function useSortable(input) {
79
77
  void 0,
80
78
  deepEqual
81
79
  );
82
- useOnValueChange(data, () => sortable.data = data != null ? data : null);
80
+ useOnValueChange(data, () => data && (sortable.data = data));
83
81
  useOnValueChange(
84
82
  index,
85
83
  () => {
@@ -111,6 +109,9 @@ function useSortable(input) {
111
109
  get isDropTarget() {
112
110
  return isDropTarget.value;
113
111
  },
112
+ get status() {
113
+ return status.value;
114
+ },
114
115
  handleRef: useCallback(
115
116
  (element2) => {
116
117
  sortable.handle = element2 != null ? element2 : void 0;