@dnd-kit/react 0.0.1 → 0.0.2-beta-20240604015414

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
@@ -129,34 +129,41 @@ var DragDropProvider = react.forwardRef(
129
129
  const handleDragEnd = hooks.useLatest(onDragEnd);
130
130
  const handleCollision = hooks.useEvent(onCollision);
131
131
  react.useEffect(() => {
132
- manager.monitor.addEventListener("beforedragstart", (event, manager2) => {
133
- const callback = handleBeforeDragStart.current;
134
- if (callback) {
135
- trackRendering(() => callback(event, manager2));
136
- }
137
- });
138
- manager.monitor.addEventListener("dragstart", handleDragStart);
139
- manager.monitor.addEventListener("dragover", (event, manager2) => {
140
- const callback = handleDragOver.current;
141
- if (callback) {
142
- trackRendering(() => callback(event, manager2));
143
- }
144
- });
145
- manager.monitor.addEventListener("dragmove", (event, manager2) => {
146
- const callback = handleDragMove.current;
147
- if (callback) {
148
- trackRendering(() => callback(event, manager2));
149
- }
150
- });
151
- manager.monitor.addEventListener("dragend", (event, manager2) => {
152
- const callback = handleDragEnd.current;
153
- if (callback) {
154
- trackRendering(() => callback(event, manager2));
155
- }
156
- });
157
- manager.monitor.addEventListener("collision", handleCollision);
132
+ const listeners = [
133
+ manager.monitor.addEventListener(
134
+ "beforedragstart",
135
+ (event, manager2) => {
136
+ const callback = handleBeforeDragStart.current;
137
+ if (callback) {
138
+ trackRendering(() => callback(event, manager2));
139
+ }
140
+ }
141
+ ),
142
+ manager.monitor.addEventListener("dragstart", handleDragStart),
143
+ manager.monitor.addEventListener("dragover", (event, manager2) => {
144
+ const callback = handleDragOver.current;
145
+ if (callback) {
146
+ trackRendering(() => callback(event, manager2));
147
+ }
148
+ }),
149
+ manager.monitor.addEventListener("dragmove", (event, manager2) => {
150
+ const callback = handleDragMove.current;
151
+ if (callback) {
152
+ trackRendering(() => callback(event, manager2));
153
+ }
154
+ }),
155
+ manager.monitor.addEventListener("dragend", (event, manager2) => {
156
+ const callback = handleDragEnd.current;
157
+ if (callback) {
158
+ trackRendering(() => callback(event, manager2));
159
+ }
160
+ }),
161
+ manager.monitor.addEventListener("collision", handleCollision)
162
+ ];
158
163
  return () => {
159
- manager.destroy();
164
+ for (const unsubscribe of listeners) {
165
+ unsubscribe();
166
+ }
160
167
  };
161
168
  }, [manager]);
162
169
  hooks.useOnValueChange(
@@ -188,8 +195,11 @@ function useDraggable(input) {
188
195
  () => draggable.feedback = input.feedback ?? "default"
189
196
  );
190
197
  react.useEffect(() => {
191
- return draggable.destroy;
192
- }, [draggable]);
198
+ manager.registry.register(draggable);
199
+ return () => {
200
+ manager.registry.unregister(draggable);
201
+ };
202
+ }, [manager, draggable]);
193
203
  return {
194
204
  get isDragSource() {
195
205
  return isDragSource.value;
@@ -225,8 +235,11 @@ function useDroppable(input) {
225
235
  hooks.useOnValueChange(element, () => droppable.element = element);
226
236
  hooks.useOnValueChange(type, () => droppable.id = id);
227
237
  react.useEffect(() => {
228
- return droppable.destroy;
229
- }, [droppable]);
238
+ manager.registry.register(droppable);
239
+ return () => {
240
+ manager.registry.unregister(droppable);
241
+ };
242
+ }, [manager, droppable]);
230
243
  return {
231
244
  get isDisabled() {
232
245
  return isDisabled.value;
package/index.js CHANGED
@@ -127,34 +127,41 @@ var DragDropProvider = forwardRef(
127
127
  const handleDragEnd = useLatest(onDragEnd);
128
128
  const handleCollision = useEvent(onCollision);
129
129
  useEffect(() => {
130
- manager.monitor.addEventListener("beforedragstart", (event, manager2) => {
131
- const callback = handleBeforeDragStart.current;
132
- if (callback) {
133
- trackRendering(() => callback(event, manager2));
134
- }
135
- });
136
- manager.monitor.addEventListener("dragstart", handleDragStart);
137
- manager.monitor.addEventListener("dragover", (event, manager2) => {
138
- const callback = handleDragOver.current;
139
- if (callback) {
140
- trackRendering(() => callback(event, manager2));
141
- }
142
- });
143
- manager.monitor.addEventListener("dragmove", (event, manager2) => {
144
- const callback = handleDragMove.current;
145
- if (callback) {
146
- trackRendering(() => callback(event, manager2));
147
- }
148
- });
149
- manager.monitor.addEventListener("dragend", (event, manager2) => {
150
- const callback = handleDragEnd.current;
151
- if (callback) {
152
- trackRendering(() => callback(event, manager2));
153
- }
154
- });
155
- manager.monitor.addEventListener("collision", handleCollision);
130
+ const listeners = [
131
+ manager.monitor.addEventListener(
132
+ "beforedragstart",
133
+ (event, manager2) => {
134
+ const callback = handleBeforeDragStart.current;
135
+ if (callback) {
136
+ trackRendering(() => callback(event, manager2));
137
+ }
138
+ }
139
+ ),
140
+ manager.monitor.addEventListener("dragstart", handleDragStart),
141
+ manager.monitor.addEventListener("dragover", (event, manager2) => {
142
+ const callback = handleDragOver.current;
143
+ if (callback) {
144
+ trackRendering(() => callback(event, manager2));
145
+ }
146
+ }),
147
+ manager.monitor.addEventListener("dragmove", (event, manager2) => {
148
+ const callback = handleDragMove.current;
149
+ if (callback) {
150
+ trackRendering(() => callback(event, manager2));
151
+ }
152
+ }),
153
+ manager.monitor.addEventListener("dragend", (event, manager2) => {
154
+ const callback = handleDragEnd.current;
155
+ if (callback) {
156
+ trackRendering(() => callback(event, manager2));
157
+ }
158
+ }),
159
+ manager.monitor.addEventListener("collision", handleCollision)
160
+ ];
156
161
  return () => {
157
- manager.destroy();
162
+ for (const unsubscribe of listeners) {
163
+ unsubscribe();
164
+ }
158
165
  };
159
166
  }, [manager]);
160
167
  useOnValueChange(
@@ -186,8 +193,11 @@ function useDraggable(input) {
186
193
  () => draggable.feedback = input.feedback ?? "default"
187
194
  );
188
195
  useEffect(() => {
189
- return draggable.destroy;
190
- }, [draggable]);
196
+ manager.registry.register(draggable);
197
+ return () => {
198
+ manager.registry.unregister(draggable);
199
+ };
200
+ }, [manager, draggable]);
191
201
  return {
192
202
  get isDragSource() {
193
203
  return isDragSource.value;
@@ -223,8 +233,11 @@ function useDroppable(input) {
223
233
  useOnValueChange(element, () => droppable.element = element);
224
234
  useOnValueChange(type, () => droppable.id = id);
225
235
  useEffect(() => {
226
- return droppable.destroy;
227
- }, [droppable]);
236
+ manager.registry.register(droppable);
237
+ return () => {
238
+ manager.registry.unregister(droppable);
239
+ };
240
+ }, [manager, droppable]);
228
241
  return {
229
242
  get isDisabled() {
230
243
  return isDisabled.value;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnd-kit/react",
3
- "version": "0.0.1",
3
+ "version": "0.0.2-beta-20240604015414",
4
4
  "main": "./index.cjs",
5
5
  "module": "./index.js",
6
6
  "type": "module",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@dnd-kit/abstract": "*",
60
- "@dnd-kit/dom": "*",
60
+ "@dnd-kit/dom": "0.0.2-beta-20240604015414",
61
61
  "@dnd-kit/state": "*",
62
62
  "tslib": "^2.6.2"
63
63
  },
package/sortable.cjs CHANGED
@@ -17,11 +17,11 @@ function useSortable(input) {
17
17
  data,
18
18
  index,
19
19
  disabled,
20
+ feedback,
20
21
  sensors,
21
22
  transition = sortable.defaultSortableTransition,
22
23
  type
23
24
  } = input;
24
- const feedback = typeof input.feedback === "function" ? "none" : input.feedback;
25
25
  const manager = react.useDragDropManager();
26
26
  const handle = utilities.getCurrentValue(input.handle);
27
27
  const element = utilities.getCurrentValue(input.element);
@@ -71,14 +71,8 @@ function useSortable(input) {
71
71
  collisionPriority,
72
72
  () => sortable$1.collisionPriority = collisionPriority
73
73
  );
74
- hooks.useOnValueChange(
75
- input.feedback,
76
- () => sortable$1.feedback = feedback ?? "default"
77
- );
74
+ hooks.useOnValueChange(feedback, () => sortable$1.feedback = feedback ?? "default");
78
75
  hooks.useOnValueChange(transition, () => sortable$1.transition = transition);
79
- react$1.useEffect(() => {
80
- return sortable$1.destroy;
81
- }, [sortable$1]);
82
76
  return {
83
77
  get isDisabled() {
84
78
  return isDisabled.value;
package/sortable.d.ts CHANGED
@@ -1,12 +1,10 @@
1
1
  import { Data } from '@dnd-kit/abstract';
2
2
  import { SortableInput } from '@dnd-kit/dom/sortable';
3
3
  import { RefOrValue } from '@dnd-kit/react/utilities';
4
- import { FeedbackType } from '@dnd-kit/dom';
5
4
 
6
- interface UseSortableInput<T extends Data = Data> extends Omit<SortableInput<T>, 'handle' | 'element' | 'feedback'> {
5
+ interface UseSortableInput<T extends Data = Data> extends Omit<SortableInput<T>, 'handle' | 'element'> {
7
6
  handle?: RefOrValue<Element>;
8
7
  element?: RefOrValue<Element>;
9
- feedback?: FeedbackType | (() => React.ReactNode);
10
8
  }
11
9
  declare function useSortable<T extends Data = Data>(input: UseSortableInput<T>): {
12
10
  readonly isDisabled: boolean;
package/sortable.js CHANGED
@@ -1,4 +1,4 @@
1
- import { useEffect, useCallback } from 'react';
1
+ import { useCallback } from 'react';
2
2
  import { deepEqual } from '@dnd-kit/state';
3
3
  import { Sortable, defaultSortableTransition } from '@dnd-kit/dom/sortable';
4
4
  import { useDragDropManager } from '@dnd-kit/react';
@@ -15,11 +15,11 @@ function useSortable(input) {
15
15
  data,
16
16
  index,
17
17
  disabled,
18
+ feedback,
18
19
  sensors,
19
20
  transition = defaultSortableTransition,
20
21
  type
21
22
  } = input;
22
- const feedback = typeof input.feedback === "function" ? "none" : input.feedback;
23
23
  const manager = useDragDropManager();
24
24
  const handle = getCurrentValue(input.handle);
25
25
  const element = getCurrentValue(input.element);
@@ -69,14 +69,8 @@ function useSortable(input) {
69
69
  collisionPriority,
70
70
  () => sortable.collisionPriority = collisionPriority
71
71
  );
72
- useOnValueChange(
73
- input.feedback,
74
- () => sortable.feedback = feedback ?? "default"
75
- );
72
+ useOnValueChange(feedback, () => sortable.feedback = feedback ?? "default");
76
73
  useOnValueChange(transition, () => sortable.transition = transition);
77
- useEffect(() => {
78
- return sortable.destroy;
79
- }, [sortable]);
80
74
  return {
81
75
  get isDisabled() {
82
76
  return isDisabled.value;