react-use-drag 0.0.1

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 ADDED
@@ -0,0 +1,25 @@
1
+ # React ripple click [![npm](https://img.shields.io/npm/v/react-use-drag.svg)](https://www.npmjs.com/package/react-use-drag) ![npm type definitions](https://img.shields.io/npm/types/react-use-drag.svg)
2
+
3
+ Drag interactions made easier. Try interactive [CodeSandbox demo](https://codesandbox.io/s/react-use-drag?file=/src/App.js).
4
+
5
+ ![UI example](https://raw.githubusercontent.com/FilipChalupa/react-use-drag/HEAD/screencast.gif)
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install react-use-drag
11
+ ```
12
+
13
+ ## How to use
14
+
15
+ ```jsx
16
+ import { useDrag } from 'react-use-drag'
17
+
18
+ const App = () => {
19
+ const drag = useDrag()
20
+
21
+ // @TODO
22
+
23
+ return <button>Drag me</button>
24
+ }
25
+ ```
package/dist/index.cjs ADDED
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ var useDrag = function (onRelativePositionChange, onEnd, onStart) {
6
+ var _a = react.useState(false), isMoving = _a[0], setIsMoving = _a[1];
7
+ var startPosition = react.useRef({ x: 0, y: 0, scrollX: 0, scrollY: 0 });
8
+ var _b = react.useState({ x: 0, y: 0 }), offsetPosition = _b[0], setOffsetPosition = _b[1];
9
+ var onPointerDown = react.useCallback(function (event) {
10
+ event.preventDefault();
11
+ startPosition.current = {
12
+ x: event.clientX,
13
+ y: event.clientY,
14
+ scrollX: window.scrollX, // @TODO: handle any parent scroll
15
+ scrollY: window.scrollY, // @TODO: handle any parent scroll
16
+ };
17
+ event.currentTarget.setPointerCapture(event.pointerId);
18
+ setIsMoving(true);
19
+ onStart();
20
+ }, [onStart]);
21
+ var onPointerUp = react.useMemo(function () {
22
+ if (!isMoving) {
23
+ return undefined;
24
+ }
25
+ return function (event) {
26
+ event.preventDefault();
27
+ setIsMoving(false);
28
+ event.currentTarget.releasePointerCapture(event.pointerId);
29
+ onEnd(offsetPosition.x, offsetPosition.y);
30
+ setOffsetPosition({ x: 0, y: 0 });
31
+ };
32
+ }, [isMoving, onEnd]);
33
+ var onPointerMove = react.useMemo(function () {
34
+ if (!isMoving) {
35
+ return undefined;
36
+ }
37
+ return function (event) {
38
+ event.preventDefault();
39
+ var newOffsetPosition = {
40
+ x: event.clientX +
41
+ window.scrollX -
42
+ (startPosition.current.x + startPosition.current.scrollX),
43
+ y: event.clientY +
44
+ window.scrollY -
45
+ (startPosition.current.y + startPosition.current.scrollY),
46
+ };
47
+ setOffsetPosition(newOffsetPosition);
48
+ };
49
+ }, [isMoving]);
50
+ react.useEffect(function () {
51
+ onRelativePositionChange(offsetPosition.x, offsetPosition.y);
52
+ }, [offsetPosition.x, offsetPosition.y, onRelativePositionChange]);
53
+ var elementProps = react.useMemo(function () { return ({
54
+ onPointerDown: onPointerDown,
55
+ onPointerUp: onPointerUp,
56
+ onPointerMove: onPointerMove,
57
+ }); }, [onPointerDown, onPointerMove, onPointerUp]);
58
+ return react.useMemo(function () { return ({ isMoving: isMoving, elementProps: elementProps }); }, [isMoving, elementProps]);
59
+ };
60
+
61
+ exports.useDrag = useDrag;
62
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/useDrag.ts"],"sourcesContent":["import {\n\tPointerEvent,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\n\nexport const useDrag = (\n\tonRelativePositionChange: (x: number, y: number) => void,\n\tonEnd: (x: number, y: number) => void,\n\tonStart: () => void,\n) => {\n\tconst [isMoving, setIsMoving] = useState(false)\n\tconst startPosition = useRef({ x: 0, y: 0, scrollX: 0, scrollY: 0 })\n\tconst [offsetPosition, setOffsetPosition] = useState({ x: 0, y: 0 })\n\n\tconst onPointerDown = useCallback(\n\t\t(event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tstartPosition.current = {\n\t\t\t\tx: event.clientX,\n\t\t\t\ty: event.clientY,\n\t\t\t\tscrollX: window.scrollX, // @TODO: handle any parent scroll\n\t\t\t\tscrollY: window.scrollY, // @TODO: handle any parent scroll\n\t\t\t}\n\t\t\tevent.currentTarget.setPointerCapture(event.pointerId)\n\t\t\tsetIsMoving(true)\n\t\t\tonStart()\n\t\t},\n\t\t[onStart],\n\t)\n\n\tconst onPointerUp = useMemo(() => {\n\t\tif (!isMoving) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tsetIsMoving(false)\n\t\t\tevent.currentTarget.releasePointerCapture(event.pointerId)\n\t\t\tonEnd(offsetPosition.x, offsetPosition.y)\n\t\t\tsetOffsetPosition({ x: 0, y: 0 })\n\t\t}\n\t}, [isMoving, onEnd])\n\n\tconst onPointerMove = useMemo(() => {\n\t\tif (!isMoving) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tconst newOffsetPosition = {\n\t\t\t\tx:\n\t\t\t\t\tevent.clientX +\n\t\t\t\t\twindow.scrollX -\n\t\t\t\t\t(startPosition.current.x + startPosition.current.scrollX),\n\t\t\t\ty:\n\t\t\t\t\tevent.clientY +\n\t\t\t\t\twindow.scrollY -\n\t\t\t\t\t(startPosition.current.y + startPosition.current.scrollY),\n\t\t\t}\n\t\t\tsetOffsetPosition(newOffsetPosition)\n\t\t}\n\t}, [isMoving])\n\n\tuseEffect(() => {\n\t\tonRelativePositionChange(offsetPosition.x, offsetPosition.y)\n\t}, [offsetPosition.x, offsetPosition.y, onRelativePositionChange])\n\n\tconst elementProps = useMemo(\n\t\t() => ({\n\t\t\tonPointerDown,\n\t\t\tonPointerUp,\n\t\t\tonPointerMove,\n\t\t}),\n\t\t[onPointerDown, onPointerMove, onPointerUp],\n\t)\n\n\treturn useMemo(() => ({ isMoving, elementProps }), [isMoving, elementProps])\n}\n"],"names":["useState","useRef","useCallback","useMemo","useEffect"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './useDrag';
package/dist/index.mjs ADDED
@@ -0,0 +1,60 @@
1
+ import { useState, useRef, useCallback, useMemo, useEffect } from 'react';
2
+
3
+ var useDrag = function (onRelativePositionChange, onEnd, onStart) {
4
+ var _a = useState(false), isMoving = _a[0], setIsMoving = _a[1];
5
+ var startPosition = useRef({ x: 0, y: 0, scrollX: 0, scrollY: 0 });
6
+ var _b = useState({ x: 0, y: 0 }), offsetPosition = _b[0], setOffsetPosition = _b[1];
7
+ var onPointerDown = useCallback(function (event) {
8
+ event.preventDefault();
9
+ startPosition.current = {
10
+ x: event.clientX,
11
+ y: event.clientY,
12
+ scrollX: window.scrollX, // @TODO: handle any parent scroll
13
+ scrollY: window.scrollY, // @TODO: handle any parent scroll
14
+ };
15
+ event.currentTarget.setPointerCapture(event.pointerId);
16
+ setIsMoving(true);
17
+ onStart();
18
+ }, [onStart]);
19
+ var onPointerUp = useMemo(function () {
20
+ if (!isMoving) {
21
+ return undefined;
22
+ }
23
+ return function (event) {
24
+ event.preventDefault();
25
+ setIsMoving(false);
26
+ event.currentTarget.releasePointerCapture(event.pointerId);
27
+ onEnd(offsetPosition.x, offsetPosition.y);
28
+ setOffsetPosition({ x: 0, y: 0 });
29
+ };
30
+ }, [isMoving, onEnd]);
31
+ var onPointerMove = useMemo(function () {
32
+ if (!isMoving) {
33
+ return undefined;
34
+ }
35
+ return function (event) {
36
+ event.preventDefault();
37
+ var newOffsetPosition = {
38
+ x: event.clientX +
39
+ window.scrollX -
40
+ (startPosition.current.x + startPosition.current.scrollX),
41
+ y: event.clientY +
42
+ window.scrollY -
43
+ (startPosition.current.y + startPosition.current.scrollY),
44
+ };
45
+ setOffsetPosition(newOffsetPosition);
46
+ };
47
+ }, [isMoving]);
48
+ useEffect(function () {
49
+ onRelativePositionChange(offsetPosition.x, offsetPosition.y);
50
+ }, [offsetPosition.x, offsetPosition.y, onRelativePositionChange]);
51
+ var elementProps = useMemo(function () { return ({
52
+ onPointerDown: onPointerDown,
53
+ onPointerUp: onPointerUp,
54
+ onPointerMove: onPointerMove,
55
+ }); }, [onPointerDown, onPointerMove, onPointerUp]);
56
+ return useMemo(function () { return ({ isMoving: isMoving, elementProps: elementProps }); }, [isMoving, elementProps]);
57
+ };
58
+
59
+ export { useDrag };
60
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/useDrag.ts"],"sourcesContent":["import {\n\tPointerEvent,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\n\nexport const useDrag = (\n\tonRelativePositionChange: (x: number, y: number) => void,\n\tonEnd: (x: number, y: number) => void,\n\tonStart: () => void,\n) => {\n\tconst [isMoving, setIsMoving] = useState(false)\n\tconst startPosition = useRef({ x: 0, y: 0, scrollX: 0, scrollY: 0 })\n\tconst [offsetPosition, setOffsetPosition] = useState({ x: 0, y: 0 })\n\n\tconst onPointerDown = useCallback(\n\t\t(event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tstartPosition.current = {\n\t\t\t\tx: event.clientX,\n\t\t\t\ty: event.clientY,\n\t\t\t\tscrollX: window.scrollX, // @TODO: handle any parent scroll\n\t\t\t\tscrollY: window.scrollY, // @TODO: handle any parent scroll\n\t\t\t}\n\t\t\tevent.currentTarget.setPointerCapture(event.pointerId)\n\t\t\tsetIsMoving(true)\n\t\t\tonStart()\n\t\t},\n\t\t[onStart],\n\t)\n\n\tconst onPointerUp = useMemo(() => {\n\t\tif (!isMoving) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tsetIsMoving(false)\n\t\t\tevent.currentTarget.releasePointerCapture(event.pointerId)\n\t\t\tonEnd(offsetPosition.x, offsetPosition.y)\n\t\t\tsetOffsetPosition({ x: 0, y: 0 })\n\t\t}\n\t}, [isMoving, onEnd])\n\n\tconst onPointerMove = useMemo(() => {\n\t\tif (!isMoving) {\n\t\t\treturn undefined\n\t\t}\n\t\treturn (event: PointerEvent<HTMLElement>) => {\n\t\t\tevent.preventDefault()\n\t\t\tconst newOffsetPosition = {\n\t\t\t\tx:\n\t\t\t\t\tevent.clientX +\n\t\t\t\t\twindow.scrollX -\n\t\t\t\t\t(startPosition.current.x + startPosition.current.scrollX),\n\t\t\t\ty:\n\t\t\t\t\tevent.clientY +\n\t\t\t\t\twindow.scrollY -\n\t\t\t\t\t(startPosition.current.y + startPosition.current.scrollY),\n\t\t\t}\n\t\t\tsetOffsetPosition(newOffsetPosition)\n\t\t}\n\t}, [isMoving])\n\n\tuseEffect(() => {\n\t\tonRelativePositionChange(offsetPosition.x, offsetPosition.y)\n\t}, [offsetPosition.x, offsetPosition.y, onRelativePositionChange])\n\n\tconst elementProps = useMemo(\n\t\t() => ({\n\t\t\tonPointerDown,\n\t\t\tonPointerUp,\n\t\t\tonPointerMove,\n\t\t}),\n\t\t[onPointerDown, onPointerMove, onPointerUp],\n\t)\n\n\treturn useMemo(() => ({ isMoving, elementProps }), [isMoving, elementProps])\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PointerEvent } from 'react';
2
+ export declare const useDrag: (onRelativePositionChange: (x: number, y: number) => void, onEnd: (x: number, y: number) => void, onStart: () => void) => {
3
+ isMoving: boolean;
4
+ elementProps: {
5
+ onPointerDown: (event: PointerEvent<HTMLElement>) => void;
6
+ onPointerUp: ((event: PointerEvent<HTMLElement>) => void) | undefined;
7
+ onPointerMove: ((event: PointerEvent<HTMLElement>) => void) | undefined;
8
+ };
9
+ };
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "react-use-drag",
3
+ "version": "0.0.1",
4
+ "description": "Drag interactions made easier.",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
9
+ "scripts": {
10
+ "start": "rollup -c -w",
11
+ "build": "rollup -c",
12
+ "prepare": "npm run build"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/FilipChalupa/react-use-drag.git"
17
+ },
18
+ "keywords": [
19
+ "typescript",
20
+ "react",
21
+ "hook",
22
+ "drag"
23
+ ],
24
+ "author": {
25
+ "name": "Filip Chalupa",
26
+ "email": "chalupa.filip@gmail.com",
27
+ "url": "https://www.npmjs.com/~onset"
28
+ },
29
+ "license": "ISC",
30
+ "devDependencies": {
31
+ "@rollup/plugin-commonjs": "^25.0.7",
32
+ "@rollup/plugin-node-resolve": "^15.2.3",
33
+ "@types/react": "^18.0.10",
34
+ "prettier": "^3.0.3",
35
+ "react": "^18.1.0",
36
+ "rollup": "^4.2.0",
37
+ "rollup-plugin-delete": "^2.0.0",
38
+ "rollup-plugin-peer-deps-external": "^2.2.4",
39
+ "rollup-plugin-typescript2": "^0.36.0",
40
+ "typescript": "^5.2.2",
41
+ "typescript-plugin-css-modules": "^5.0.2"
42
+ },
43
+ "peerDependencies": {
44
+ "react": "18"
45
+ },
46
+ "files": [
47
+ "/dist/"
48
+ ]
49
+ }