react-reorder-list 0.6.3 → 0.6.4
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/dist/hooks.d.ts +8 -4
- package/dist/hooks.js +9 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +5 -1
- package/package.json +3 -4
package/dist/hooks.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
3
|
-
export default function useDraggable(initValue?: boolean): {
|
|
1
|
+
import { MouseEvent, TouchEvent } from "react";
|
|
2
|
+
export declare function useDraggable(initValue?: boolean): {
|
|
4
3
|
draggable: boolean;
|
|
5
|
-
draggableProps:
|
|
4
|
+
draggableProps: {
|
|
5
|
+
onMouseEnter: (event: MouseEvent | TouchEvent) => void;
|
|
6
|
+
onMouseLeave: (event: MouseEvent | TouchEvent) => void;
|
|
7
|
+
onTouchStart: (event: MouseEvent | TouchEvent) => void;
|
|
8
|
+
onTouchEnd: (event: MouseEvent | TouchEvent) => void;
|
|
9
|
+
};
|
|
6
10
|
};
|
package/dist/hooks.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { useState } from "react";
|
|
2
|
-
export
|
|
2
|
+
export function useDraggable(initValue = false) {
|
|
3
3
|
const [draggable, setDraggable] = useState(initValue);
|
|
4
|
-
const enableDragging = () =>
|
|
5
|
-
|
|
4
|
+
const enableDragging = (event) => {
|
|
5
|
+
event.stopPropagation();
|
|
6
|
+
setDraggable(true);
|
|
7
|
+
};
|
|
8
|
+
const disableDragging = (event) => {
|
|
9
|
+
event.stopPropagation();
|
|
10
|
+
setDraggable(false);
|
|
11
|
+
};
|
|
6
12
|
const draggableProps = { onMouseEnter: enableDragging, onMouseLeave: disableDragging, onTouchStart: enableDragging, onTouchEnd: disableDragging };
|
|
7
13
|
return { draggable, draggableProps };
|
|
8
14
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import React, { ReactNode } from "react";
|
|
2
|
-
|
|
3
|
-
export type { Props } from "./hooks.js";
|
|
1
|
+
import React, { DetailedHTMLProps, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export type Props = DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
4
3
|
export type PositionChangeHandler = (params?: {
|
|
5
4
|
start?: number;
|
|
6
5
|
end?: number;
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React, { Children, cloneElement, createRef, forwardRef, isValidElement, useEffect, useMemo, useRef, useState } from "react";
|
|
13
13
|
import { PiDotsSixVerticalBold } from "./icons.js";
|
|
14
14
|
import Animation from "./animation.js";
|
|
15
|
-
import useDraggable from "./hooks.js";
|
|
15
|
+
import { useDraggable } from "./hooks.js";
|
|
16
16
|
if (typeof window !== "undefined")
|
|
17
17
|
import("drag-drop-touch");
|
|
18
18
|
const scrollThreshold = { x: 10, y: 100 };
|
|
@@ -90,6 +90,7 @@ export default function ReorderList({ useOnlyIconToDrag = false, selectedItemOpa
|
|
|
90
90
|
setIsAnimating(true);
|
|
91
91
|
setTimeout(() => setIsAnimating(false), animationDuration);
|
|
92
92
|
}, onDragEnd: handleDragEnd, onTouchMove: (event) => {
|
|
93
|
+
event.stopPropagation();
|
|
93
94
|
if (start === -1)
|
|
94
95
|
return;
|
|
95
96
|
const { clientX, screenX, clientY, screenY } = event.touches[0];
|
|
@@ -109,6 +110,8 @@ export default function ReorderList({ useOnlyIconToDrag = false, selectedItemOpa
|
|
|
109
110
|
function ReorderItem(_a, ref) {
|
|
110
111
|
var { useOnlyIconToDrag, onTouchEnd: propOnTouchEnd, children } = _a, props = __rest(_a, ["useOnlyIconToDrag", "onTouchEnd", "children"]);
|
|
111
112
|
const _b = useDraggable(), { draggable } = _b, _c = _b.draggableProps, { onTouchEnd: draggableOnTouchEnd } = _c, draggableProps = __rest(_c, ["onTouchEnd"]);
|
|
113
|
+
if (!draggable)
|
|
114
|
+
props.onDragStart = undefined;
|
|
112
115
|
const recursiveClone = (children) => Children.map(children, (child) => {
|
|
113
116
|
if (!isValidElement(child))
|
|
114
117
|
return child;
|
|
@@ -116,6 +119,7 @@ function ReorderItem(_a, ref) {
|
|
|
116
119
|
});
|
|
117
120
|
const recursiveChildren = useMemo(() => (useOnlyIconToDrag ? recursiveClone(children) : children), [useOnlyIconToDrag, children]);
|
|
118
121
|
return (React.createElement("div", Object.assign({ ref: ref, draggable: draggable }, props, (!useOnlyIconToDrag && draggableProps), { onTouchEnd: (event) => {
|
|
122
|
+
event.stopPropagation();
|
|
119
123
|
draggableOnTouchEnd(event);
|
|
120
124
|
propOnTouchEnd(event);
|
|
121
125
|
} }), recursiveChildren));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-reorder-list",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "A simple react component that facilitates the reordering of JSX/HTML elements through drag-and-drop functionality, allowing for easy position changes.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,11 +26,10 @@
|
|
|
26
26
|
},
|
|
27
27
|
"homepage": "https://github.com/SahilAggarwal2004/react-reorder-list#readme",
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"react": ">=16.0.0"
|
|
30
|
-
"react-dom": ">=16.0.0"
|
|
29
|
+
"react": ">=16.0.0"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
|
-
"@types/react": "^18.2.
|
|
32
|
+
"@types/react": "^18.2.54"
|
|
34
33
|
},
|
|
35
34
|
"dependencies": {
|
|
36
35
|
"drag-drop-touch": "^1.3.1"
|