react-native-skia-gesture 0.1.172 → 0.3.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 +71 -20
- package/lib/commonjs/canvas/canvas.js +55 -52
- package/lib/commonjs/canvas/canvas.js.map +1 -1
- package/lib/commonjs/canvas/context.js +1 -1
- package/lib/commonjs/canvas/context.js.map +1 -1
- package/lib/commonjs/components/index.js +4 -4
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/hoc/with-touchable-handler.js +29 -34
- package/lib/commonjs/hoc/with-touchable-handler.js.map +1 -1
- package/lib/commonjs/hooks/use-gesture-handler.js +11 -5
- package/lib/commonjs/hooks/use-gesture-handler.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/get-circle-path.js +2 -0
- package/lib/commonjs/utils/get-circle-path.js.map +1 -1
- package/lib/commonjs/utils/get-rect-path.js +8 -5
- package/lib/commonjs/utils/get-rect-path.js.map +1 -1
- package/lib/commonjs/utils/unwrap-animated-value.js +7 -0
- package/lib/commonjs/utils/unwrap-animated-value.js.map +1 -1
- package/lib/module/canvas/canvas.js +57 -54
- package/lib/module/canvas/canvas.js.map +1 -1
- package/lib/module/canvas/context.js +1 -1
- package/lib/module/canvas/context.js.map +1 -1
- package/lib/module/components/index.js +4 -4
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/hoc/with-touchable-handler.js +28 -34
- package/lib/module/hoc/with-touchable-handler.js.map +1 -1
- package/lib/module/hooks/use-gesture-handler.js +11 -5
- package/lib/module/hooks/use-gesture-handler.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/get-circle-path.js +2 -0
- package/lib/module/utils/get-circle-path.js.map +1 -1
- package/lib/module/utils/get-rect-path.js +9 -6
- package/lib/module/utils/get-rect-path.js.map +1 -1
- package/lib/module/utils/unwrap-animated-value.js +7 -0
- package/lib/module/utils/unwrap-animated-value.js.map +1 -1
- package/lib/typescript/canvas/canvas.d.ts +6 -2
- package/lib/typescript/canvas/canvas.d.ts.map +1 -1
- package/lib/typescript/canvas/context.d.ts +6 -5
- package/lib/typescript/canvas/context.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/hoc/with-touchable-handler.d.ts +7 -9
- package/lib/typescript/hoc/with-touchable-handler.d.ts.map +1 -1
- package/lib/typescript/hooks/use-gesture-handler.d.ts +7 -8
- package/lib/typescript/hooks/use-gesture-handler.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/get-circle-path.d.ts.map +1 -1
- package/lib/typescript/utils/get-rect-path.d.ts.map +1 -1
- package/lib/typescript/utils/unwrap-animated-value.d.ts +2 -1
- package/lib/typescript/utils/unwrap-animated-value.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/canvas/canvas.tsx +88 -68
- package/src/canvas/context.tsx +19 -10
- package/src/components/index.ts +5 -4
- package/src/hoc/with-touchable-handler.tsx +40 -35
- package/src/hooks/use-gesture-handler.ts +25 -16
- package/src/index.ts +1 -1
- package/src/utils/get-circle-path.ts +1 -0
- package/src/utils/get-rect-path.ts +11 -6
- package/src/utils/unwrap-animated-value.ts +9 -1
package/README.md
CHANGED
@@ -4,10 +4,6 @@ React Native Skia Gesture 🤌🏽
|
|
4
4
|
|
5
5
|
_A detection system for React Native Skia components._
|
6
6
|
|
7
|
-
<div align="center">
|
8
|
-
<img src="https://github.com/enzomanuelmangano/react-native-skia-gesture/blob/main/.assets/example.gif" title="react-native-skia-gesture">
|
9
|
-
</div>
|
10
|
-
|
11
7
|
### Motivation
|
12
8
|
|
13
9
|
React Native Skia, provides many declarative APIs for building screens using React Components. However, [Skia components are not real components, but abstract representations of a part of a drawing](https://github.com/Shopify/react-native-skia/issues/513#issuecomment-1290126304).
|
@@ -17,43 +13,49 @@ This package, simply provides a set of APIs to be able to interact directly with
|
|
17
13
|
|
18
14
|
## Installation
|
19
15
|
|
20
|
-
**You need to have already installed [@shopify/react-native-skia (>= 0.1.
|
16
|
+
**You need to have already installed [@shopify/react-native-skia (>= 0.1.221)](https://shopify.github.io/react-native-skia/docs/getting-started/installation)**
|
17
|
+
|
18
|
+
### Since v0.3.0
|
21
19
|
|
22
|
-
|
20
|
+
You need to install Reanimated (v3.0.0+) and Gesture Handler (v2.0.0+)
|
23
21
|
|
24
22
|
```sh
|
25
|
-
yarn add react-native-
|
23
|
+
yarn add react-native-reanimated react-native-gesture-handler
|
26
24
|
```
|
27
25
|
|
28
|
-
|
26
|
+
### Install Skia Gesture
|
27
|
+
|
28
|
+
Open a Terminal in your project's folder and then install the library using `yarn`:
|
29
29
|
|
30
30
|
```sh
|
31
|
-
|
31
|
+
yarn add react-native-skia-gesture
|
32
32
|
```
|
33
33
|
|
34
34
|
## Usage
|
35
35
|
|
36
36
|
```jsx
|
37
37
|
import {
|
38
|
-
|
39
|
-
} from '
|
38
|
+
useSharedValue,
|
39
|
+
} from 'react-native-reanimated';
|
40
40
|
|
41
41
|
import Touchable, {
|
42
42
|
useGestureHandler,
|
43
43
|
} from 'react-native-skia-gesture';
|
44
44
|
|
45
45
|
export default function App() {
|
46
|
-
const cx =
|
47
|
-
const cy =
|
46
|
+
const cx = useSharedValue(100);
|
47
|
+
const cy = useSharedValue(100);
|
48
48
|
|
49
49
|
const circleGesture = useGestureHandler<{ x: number; y: number }>({
|
50
50
|
onStart: (_, context) => {
|
51
|
-
|
52
|
-
context.
|
51
|
+
'worklet'; // Remember the 'worklet' keyword
|
52
|
+
context.x = cx.value;
|
53
|
+
context.y = cy.value;
|
53
54
|
},
|
54
55
|
onActive: ({ translationX, translationY }, context) => {
|
55
|
-
|
56
|
-
|
56
|
+
'worklet';
|
57
|
+
cx.value = context.x + translationX;
|
58
|
+
cy.value = context.y + translationY;
|
57
59
|
},
|
58
60
|
});
|
59
61
|
|
@@ -69,9 +71,9 @@ If the element is a **Circle**, **Rect**, **RoundedRect**, or a **Path** the pac
|
|
69
71
|
|
70
72
|
```jsx
|
71
73
|
...
|
72
|
-
const touchablePath =
|
74
|
+
const touchablePath = useDerivedValue(() => {
|
73
75
|
const path = new Path();
|
74
|
-
path.addCircle(cx.
|
76
|
+
path.addCircle(cx.value, cy.value, 50);
|
75
77
|
return path;
|
76
78
|
}, [cx, cy]);
|
77
79
|
|
@@ -83,6 +85,40 @@ return (
|
|
83
85
|
...
|
84
86
|
```
|
85
87
|
|
88
|
+
### Run the Gestures on JS thread
|
89
|
+
|
90
|
+
You might want to run the gestures on the JS thread (but it's not recommended).
|
91
|
+
However it could be useful if you want to slowly migrate from the v0.2.0 to the v0.3.0.
|
92
|
+
|
93
|
+
To handle that you need to define the panGesture and pass it to the Touchable.Canvas
|
94
|
+
|
95
|
+
```jsx
|
96
|
+
import { Gesture } from 'react-native-gesture-handler';
|
97
|
+
|
98
|
+
...
|
99
|
+
|
100
|
+
const panGesture = Gesture.Pan().runOnJS(true)
|
101
|
+
|
102
|
+
const circleGesture = useGestureHandler<{ x: number; y: number }>({
|
103
|
+
// You can avoid the 'worklet' keyword if you are running the gesture on JS thread
|
104
|
+
onStart: (_, context) => {
|
105
|
+
context.x = cx.value;
|
106
|
+
context.y = cy.value;
|
107
|
+
},
|
108
|
+
onActive: ({ translationX, translationY }, context) => {
|
109
|
+
cx.value = context.x + translationX;
|
110
|
+
cy.value = context.y + translationY;
|
111
|
+
},
|
112
|
+
});
|
113
|
+
|
114
|
+
return (
|
115
|
+
<Touchable.Canvas style={styles.fill} panGesture={panGesture}>
|
116
|
+
<Touchable.Circle cx={cx} cy={cy} r={50} color="red" {...circleGesture} />
|
117
|
+
</Touchable.Canvas>
|
118
|
+
);
|
119
|
+
|
120
|
+
```
|
121
|
+
|
86
122
|
## Ingredients
|
87
123
|
|
88
124
|
### `Canvas`
|
@@ -93,13 +129,28 @@ It's simply a Wrapper of Skia's Canvas.
|
|
93
129
|
|
94
130
|
### `withTouchableHandler`
|
95
131
|
|
96
|
-
It's a HOC with which to wrap all Skia components with which you want to interact directly.
|
132
|
+
It's a HOC with which to wrap all Skia components with which you want to interact directly. You will need to pass a `touchablePath` to the component.
|
97
133
|
|
98
134
|
```jsx
|
99
135
|
import { Image } from '@shopify/react-native-skia';
|
100
136
|
import { withTouchableHandler } from 'react-native-skia-gesture';
|
101
137
|
|
102
138
|
const TouchableImage = withTouchableHandler(Image);
|
139
|
+
const touchablePath = Skia.Path.Make().addCircle(x, y, 50);
|
140
|
+
|
141
|
+
return (
|
142
|
+
<Touchable.Canvas style={styles.fill}>
|
143
|
+
<TouchableImage
|
144
|
+
image={image}
|
145
|
+
x={x}
|
146
|
+
y={y}
|
147
|
+
width={50}
|
148
|
+
height={50}
|
149
|
+
touchablePath={touchablePath}
|
150
|
+
{...circleGesture}
|
151
|
+
/>
|
152
|
+
</Touchable.Canvas>
|
153
|
+
);
|
103
154
|
```
|
104
155
|
|
105
156
|
---
|
@@ -6,73 +6,76 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.Canvas = void 0;
|
7
7
|
var _reactNativeSkia = require("@shopify/react-native-skia");
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
9
|
+
var _reactNativeGestureHandler = require("react-native-gesture-handler");
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
9
11
|
var _context = require("./context");
|
10
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
11
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
12
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
13
14
|
const Canvas = _ref => {
|
14
15
|
let {
|
15
16
|
children,
|
16
|
-
|
17
|
+
panGesture = _reactNativeGestureHandler.Gesture.Pan(),
|
17
18
|
...props
|
18
19
|
} = _ref;
|
19
|
-
|
20
|
-
const
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
}
|
41
|
-
const indexedKey = (_activatedKey$split = activatedKey.split('__')) === null || _activatedKey$split === void 0 ? void 0 : _activatedKey$split[0];
|
42
|
-
if (!indexedKey) {
|
43
|
-
return;
|
44
|
-
}
|
45
|
-
const touchableItem = touchableRefs.current[indexedKey];
|
46
|
-
return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onActi = touchableItem.onActive) === null || _touchableItem$onActi === void 0 ? void 0 : _touchableItem$onActi.call(touchableItem, event);
|
47
|
-
},
|
48
|
-
onEnd: event => {
|
49
|
-
var _activatedKey$split2, _touchableItem$onEnd;
|
50
|
-
const activatedKey = activeKey.current.find(key => key.includes(event.id.toString()));
|
51
|
-
if (!activatedKey) {
|
52
|
-
return;
|
53
|
-
}
|
54
|
-
const indexedKey = (_activatedKey$split2 = activatedKey.split('__')) === null || _activatedKey$split2 === void 0 ? void 0 : _activatedKey$split2[0];
|
55
|
-
if (!indexedKey) {
|
56
|
-
return;
|
20
|
+
// Instead of value, provide a subscribe method and reload the refs
|
21
|
+
const touchableRefs = (0, _react.useMemo)(() => {
|
22
|
+
return {
|
23
|
+
value: {}
|
24
|
+
};
|
25
|
+
}, []);
|
26
|
+
const activeKey = (0, _reactNativeReanimated.useSharedValue)([]);
|
27
|
+
const [loadedRefs, prepareLoadedRefs] = (0, _react.useState)({});
|
28
|
+
setTimeout(() => {
|
29
|
+
prepareLoadedRefs(touchableRefs.value);
|
30
|
+
}, 1000);
|
31
|
+
const mainGesture = panGesture.onBegin(event => {
|
32
|
+
const keys = Object.keys(loadedRefs);
|
33
|
+
for (let i = 0; i < keys.length; i++) {
|
34
|
+
const key = keys[i];
|
35
|
+
const touchableItem = loadedRefs[key];
|
36
|
+
const isPointInPath = touchableItem === null || touchableItem === void 0 ? void 0 : touchableItem.isPointInPath(event);
|
37
|
+
if (isPointInPath && touchableItem !== null && touchableItem !== void 0 && touchableItem.onStart) {
|
38
|
+
var _touchableItem$onStar;
|
39
|
+
activeKey.value.push(`${key}__${event.handlerTag}`);
|
40
|
+
(_touchableItem$onStar = touchableItem.onStart) === null || _touchableItem$onStar === void 0 ? void 0 : _touchableItem$onStar.call(touchableItem, event);
|
57
41
|
}
|
58
|
-
const touchableItem = touchableRefs.current[indexedKey];
|
59
|
-
activeKey.current = activeKey.current.filter(key => !key.includes(event.id.toString()));
|
60
|
-
return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onEnd = touchableItem.onEnd) === null || _touchableItem$onEnd === void 0 ? void 0 : _touchableItem$onEnd.call(touchableItem, event);
|
61
42
|
}
|
62
|
-
}
|
43
|
+
}).onUpdate(event => {
|
44
|
+
var _activatedKey$split, _touchableItem$onActi;
|
45
|
+
const activatedKey = activeKey.value.find(key => key.includes(event.handlerTag.toString()));
|
46
|
+
if (!activatedKey) {
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
const indexedKey = (_activatedKey$split = activatedKey.split('__')) === null || _activatedKey$split === void 0 ? void 0 : _activatedKey$split[0];
|
50
|
+
if (!indexedKey) {
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
const touchableItem = loadedRefs[indexedKey];
|
54
|
+
return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onActi = touchableItem.onActive) === null || _touchableItem$onActi === void 0 ? void 0 : _touchableItem$onActi.call(touchableItem, event);
|
55
|
+
}).onFinalize(event => {
|
56
|
+
var _activatedKey$split2, _touchableItem$onEnd;
|
57
|
+
const activatedKey = activeKey.value.find(key => key.includes(event.handlerTag.toString()));
|
58
|
+
if (!activatedKey) {
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
const indexedKey = (_activatedKey$split2 = activatedKey.split('__')) === null || _activatedKey$split2 === void 0 ? void 0 : _activatedKey$split2[0];
|
62
|
+
if (!indexedKey) {
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
const touchableItem = loadedRefs[indexedKey];
|
66
|
+
activeKey.value = activeKey.value.filter(key => !key.includes(event.handlerTag.toString()));
|
67
|
+
return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onEnd = touchableItem.onEnd) === null || _touchableItem$onEnd === void 0 ? void 0 : _touchableItem$onEnd.call(touchableItem, event);
|
68
|
+
});
|
63
69
|
(0, _react.useEffect)(() => {
|
64
70
|
return () => {
|
65
|
-
touchableRefs.
|
71
|
+
touchableRefs.value = {};
|
66
72
|
};
|
67
73
|
}, [touchableRefs]);
|
68
|
-
return /*#__PURE__*/_react.default.createElement(
|
69
|
-
|
70
|
-
|
71
|
-
return onTouch === null || onTouch === void 0 ? void 0 : onTouch(touchInfo);
|
72
|
-
}
|
73
|
-
}), /*#__PURE__*/_react.default.createElement(_context.TouchHandlerContext.Provider, {
|
74
|
+
return /*#__PURE__*/_react.default.createElement(_reactNativeGestureHandler.GestureDetector, {
|
75
|
+
gesture: mainGesture
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, null, /*#__PURE__*/_react.default.createElement(_reactNativeSkia.Canvas, props, /*#__PURE__*/_react.default.createElement(_context.TouchHandlerContext.Provider, {
|
74
77
|
value: touchableRefs
|
75
|
-
}, children));
|
78
|
+
}, children))));
|
76
79
|
};
|
77
80
|
exports.Canvas = Canvas;
|
78
81
|
//# sourceMappingURL=canvas.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Canvas","children","
|
1
|
+
{"version":3,"names":["Canvas","children","panGesture","Gesture","Pan","props","touchableRefs","useMemo","value","activeKey","useSharedValue","loadedRefs","prepareLoadedRefs","useState","setTimeout","mainGesture","onBegin","event","keys","Object","i","length","key","touchableItem","isPointInPath","onStart","push","handlerTag","onUpdate","activatedKey","find","includes","toString","indexedKey","split","onActive","onFinalize","filter","onEnd","useEffect"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":"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"}
|
@@ -8,7 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
9
9
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
10
10
|
const TouchHandlerContext = /*#__PURE__*/_react.default.createContext({
|
11
|
-
|
11
|
+
value: {}
|
12
12
|
});
|
13
13
|
exports.TouchHandlerContext = TouchHandlerContext;
|
14
14
|
const useTouchHandlerContext = () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["TouchHandlerContext","React","createContext","
|
1
|
+
{"version":3,"names":["TouchHandlerContext","React","createContext","value","useTouchHandlerContext","useContext"],"sourceRoot":"../../src","sources":["context.tsx"],"mappings":";;;;;;AAAA;AAA0C;AAAA;AA2B1C,MAAMA,mBAAmB,gBAAGC,cAAK,CAACC,aAAa,CAA8B;EAC3EC,KAAK,EAAE,CAAC;AACV,CAAC,CAAC;AAAC;AAEH,MAAMC,sBAAsB,GAAG,MAAM;EACnC,OAAO,IAAAC,iBAAU,EAACL,mBAAmB,CAAC;AACxC,CAAC;AAAC"}
|
@@ -13,12 +13,12 @@ exports.RoundedRect = exports.Rect = exports.Path = exports.Circle = void 0;
|
|
13
13
|
var _reactNativeSkia = require("@shopify/react-native-skia");
|
14
14
|
var _hoc = require("../hoc");
|
15
15
|
var _canvas = require("../canvas");
|
16
|
-
const Circle = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Circle);
|
16
|
+
const Circle = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Circle, 'Circle');
|
17
17
|
exports.Circle = Circle;
|
18
|
-
const RoundedRect = (0, _hoc.withTouchableHandler)(_reactNativeSkia.RoundedRect);
|
18
|
+
const RoundedRect = (0, _hoc.withTouchableHandler)(_reactNativeSkia.RoundedRect, 'RoundedRect');
|
19
19
|
exports.RoundedRect = RoundedRect;
|
20
|
-
const Rect = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Rect);
|
20
|
+
const Rect = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Rect, 'Rect');
|
21
21
|
exports.Rect = Rect;
|
22
|
-
const Path = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Path);
|
22
|
+
const Path = (0, _hoc.withTouchableHandler)(_reactNativeSkia.Path, 'Path');
|
23
23
|
exports.Path = Path;
|
24
24
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Circle","withTouchableHandler","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;
|
1
|
+
{"version":3,"names":["Circle","withTouchableHandler","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;AAOA;AAEA;AAEO,MAAMA,MAAM,GAAG,IAAAC,yBAAoB,EAACC,uBAAU,EAAE,QAAQ,CAAC;AAAC;AAC1D,MAAMC,WAAW,GAAG,IAAAF,yBAAoB,EAACG,4BAAe,EAAE,aAAa,CAAC;AAAC;AACzE,MAAMC,IAAI,GAAG,IAAAJ,yBAAoB,EAACK,qBAAQ,EAAE,MAAM,CAAC;AAAC;AACpD,MAAMC,IAAI,GAAG,IAAAN,yBAAoB,EAACO,qBAAQ,EAAE,MAAM,CAAC;AAAC"}
|
@@ -3,14 +3,15 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.withTouchableHandler = void 0;
|
7
|
-
var _reactNativeSkia = require("@shopify/react-native-skia");
|
6
|
+
exports.withTouchableHandler = exports.getSkiaPath = void 0;
|
8
7
|
var _react = require("react");
|
8
|
+
var _context = require("../canvas/context");
|
9
9
|
var _getCirclePath = require("../utils/get-circle-path");
|
10
10
|
var _getRectPath = require("../utils/get-rect-path");
|
11
11
|
var _unwrapAnimatedValue = require("../utils/unwrap-animated-value");
|
12
|
-
var _context = require("../canvas/context");
|
13
12
|
const getSkiaPath = (key, props) => {
|
13
|
+
'worklet';
|
14
|
+
|
14
15
|
const unwrappedProps = (0, _unwrapAnimatedValue.unwrapAnimatedValueObject)(props);
|
15
16
|
switch (key) {
|
16
17
|
case 'Circle':
|
@@ -25,7 +26,8 @@ const getSkiaPath = (key, props) => {
|
|
25
26
|
return null;
|
26
27
|
}
|
27
28
|
};
|
28
|
-
|
29
|
+
exports.getSkiaPath = getSkiaPath;
|
30
|
+
const withTouchableHandler = (Component, componentName) => {
|
29
31
|
return _ref => {
|
30
32
|
let {
|
31
33
|
onStart: onStartProp,
|
@@ -36,59 +38,52 @@ const withTouchableHandler = Component => {
|
|
36
38
|
} = _ref;
|
37
39
|
const id = (0, _react.useId)();
|
38
40
|
const ref = (0, _context.useTouchHandlerContext)();
|
39
|
-
const startingPoint = (0, _reactNativeSkia.useValue)(null);
|
40
41
|
const onStart = (0, _react.useCallback)(event => {
|
41
|
-
|
42
|
-
|
43
|
-
y: event.y
|
44
|
-
};
|
42
|
+
'worklet';
|
43
|
+
|
45
44
|
return onStartProp === null || onStartProp === void 0 ? void 0 : onStartProp(event);
|
46
|
-
}, [onStartProp
|
45
|
+
}, [onStartProp]);
|
47
46
|
const onActive = (0, _react.useCallback)(event => {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
...event,
|
53
|
-
translationX,
|
54
|
-
translationY
|
55
|
-
});
|
56
|
-
}, [onActiveProp, startingPoint]);
|
47
|
+
'worklet';
|
48
|
+
|
49
|
+
return onActiveProp === null || onActiveProp === void 0 ? void 0 : onActiveProp(event);
|
50
|
+
}, [onActiveProp]);
|
57
51
|
const onEnd = (0, _react.useCallback)(event => {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
...event,
|
63
|
-
translationX,
|
64
|
-
translationY
|
65
|
-
});
|
66
|
-
}, [onEndProp, startingPoint]);
|
52
|
+
'worklet';
|
53
|
+
|
54
|
+
return onEndProp === null || onEndProp === void 0 ? void 0 : onEndProp(event);
|
55
|
+
}, [onEndProp]);
|
67
56
|
const isPointInPath = (0, _react.useCallback)(point => {
|
57
|
+
'worklet';
|
58
|
+
|
68
59
|
if (touchablePath) {
|
69
60
|
return (0, _unwrapAnimatedValue.unwrapAnimatedValue)(touchablePath).contains(point.x, point.y);
|
70
61
|
}
|
71
|
-
|
62
|
+
if (!componentName) return false;
|
63
|
+
const path = getSkiaPath(componentName, props);
|
72
64
|
if (!path) {
|
73
65
|
throw Error('No touchablePath provided');
|
74
66
|
}
|
75
67
|
return path.contains(point.x, point.y);
|
76
68
|
}, [props, touchablePath]);
|
77
69
|
(0, _react.useEffect)(() => {
|
78
|
-
ref.
|
70
|
+
ref.value = {
|
79
71
|
[`id:${id}`]: {
|
80
72
|
isPointInPath,
|
81
73
|
onStart,
|
82
74
|
onActive,
|
83
75
|
onEnd
|
84
76
|
},
|
85
|
-
...ref.
|
77
|
+
...ref.value
|
86
78
|
};
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
80
|
+
}, [id, isPointInPath, onActive, onEnd, onStart]);
|
81
|
+
(0, _react.useEffect)(() => {
|
87
82
|
return () => {
|
88
|
-
var _ref$
|
89
|
-
(_ref$
|
83
|
+
var _ref$value;
|
84
|
+
(_ref$value = ref.value) === null || _ref$value === void 0 ? true : delete _ref$value[`id:${id}`];
|
90
85
|
};
|
91
|
-
}, [id,
|
86
|
+
}, [id, props, ref, touchablePath]);
|
92
87
|
return Component(props);
|
93
88
|
};
|
94
89
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getSkiaPath","key","props","unwrappedProps","unwrapAnimatedValueObject","getCirclePath","getRectPath","getRoundedRectPath","path","withTouchableHandler","Component","onStart","onStartProp","onActive","onActiveProp","onEnd","onEndProp","touchablePath","id","useId","ref","useTouchHandlerContext","
|
1
|
+
{"version":3,"names":["getSkiaPath","key","props","unwrappedProps","unwrapAnimatedValueObject","getCirclePath","getRectPath","getRoundedRectPath","path","withTouchableHandler","Component","componentName","onStart","onStartProp","onActive","onActiveProp","onEnd","onEndProp","touchablePath","id","useId","ref","useTouchHandlerContext","useCallback","event","isPointInPath","point","unwrapAnimatedValue","contains","x","y","Error","useEffect","value"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":"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"}
|
@@ -4,26 +4,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.useGestureHandler = void 0;
|
7
|
-
var _reactNativeSkia = require("@shopify/react-native-skia");
|
8
7
|
var _react = require("react");
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
9
9
|
const useGestureHandler = gestureHandlers => {
|
10
10
|
const {
|
11
11
|
onStart,
|
12
12
|
onActive,
|
13
13
|
onEnd
|
14
14
|
} = gestureHandlers;
|
15
|
-
const context = (0,
|
15
|
+
const context = (0, _reactNativeReanimated.useSharedValue)({});
|
16
16
|
const handleStart = (0, _react.useCallback)(touchInfo => {
|
17
|
+
'worklet';
|
18
|
+
|
17
19
|
if (!onStart) return;
|
18
|
-
return onStart(touchInfo, context.
|
20
|
+
return onStart(touchInfo, context.value);
|
19
21
|
}, [context, onStart]);
|
20
22
|
const handleActive = (0, _react.useCallback)(extendedTouchInfo => {
|
23
|
+
'worklet';
|
24
|
+
|
21
25
|
if (!onActive) return;
|
22
|
-
return onActive(extendedTouchInfo, context.
|
26
|
+
return onActive(extendedTouchInfo, context.value);
|
23
27
|
}, [context, onActive]);
|
24
28
|
const handleEnd = (0, _react.useCallback)(extendedTouchInfo => {
|
29
|
+
'worklet';
|
30
|
+
|
25
31
|
if (!onEnd) return;
|
26
|
-
return onEnd(extendedTouchInfo, context.
|
32
|
+
return onEnd(extendedTouchInfo, context.value);
|
27
33
|
}, [context, onEnd]);
|
28
34
|
return {
|
29
35
|
onStart: handleStart,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useGestureHandler","gestureHandlers","onStart","onActive","onEnd","context","
|
1
|
+
{"version":3,"names":["useGestureHandler","gestureHandlers","onStart","onActive","onEnd","context","useSharedValue","handleStart","useCallback","touchInfo","value","handleActive","extendedTouchInfo","handleEnd"],"sourceRoot":"../../src","sources":["use-gesture-handler.ts"],"mappings":";;;;;;AAAA;AACA;AAuBA,MAAMA,iBAAiB,GACrBC,eAAqD,IAClD;EACH,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,eAAe;EAEpD,MAAMI,OAAO,GAAG,IAAAC,qCAAc,EAAc,CAAC,CAAC,CAAQ;EAEtD,MAAMC,WAAW,GAAG,IAAAC,kBAAW,EAC5BC,SAAiE,IAAK;IACrE,SAAS;;IACT,IAAI,CAACP,OAAO,EAAE;IACd,OAAOA,OAAO,CAACO,SAAS,EAAEJ,OAAO,CAACK,KAAK,CAAC;EAC1C,CAAC,EACD,CAACL,OAAO,EAAEH,OAAO,CAAC,CACnB;EAED,MAAMS,YAAY,GAAG,IAAAH,kBAAW,EAC7BI,iBAAoE,IAAK;IACxE,SAAS;;IACT,IAAI,CAACT,QAAQ,EAAE;IACf,OAAOA,QAAQ,CAACS,iBAAiB,EAAEP,OAAO,CAACK,KAAK,CAAC;EACnD,CAAC,EACD,CAACL,OAAO,EAAEF,QAAQ,CAAC,CACpB;EAED,MAAMU,SAAS,GAAG,IAAAL,kBAAW,EAEzBI,iBAAyE,IACtE;IACH,SAAS;;IACT,IAAI,CAACR,KAAK,EAAE;IACZ,OAAOA,KAAK,CAACQ,iBAAiB,EAAEP,OAAO,CAACK,KAAK,CAAC;EAChD,CAAC,EACD,CAACL,OAAO,EAAED,KAAK,CAAC,CACjB;EAED,OAAO;IACLF,OAAO,EAAEK,WAAW;IACpBJ,QAAQ,EAAEQ,YAAY;IACtBP,KAAK,EAAES;EACT,CAAC;AACH,CAAC;AAAC"}
|
package/lib/commonjs/index.js
CHANGED
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
var _exportNames = {};
|
7
7
|
exports.default = void 0;
|
8
|
+
var Touchable = _interopRequireWildcard(require("./components"));
|
8
9
|
var _hoc = require("./hoc");
|
9
10
|
Object.keys(_hoc).forEach(function (key) {
|
10
11
|
if (key === "default" || key === "__esModule") return;
|
@@ -29,7 +30,6 @@ Object.keys(_useGestureHandler).forEach(function (key) {
|
|
29
30
|
}
|
30
31
|
});
|
31
32
|
});
|
32
|
-
var Touchable = _interopRequireWildcard(require("./components"));
|
33
33
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
34
34
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
35
35
|
var _default = Touchable;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Touchable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;
|
1
|
+
{"version":3,"names":["Touchable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AAA4C;AAAA;AAAA,eAE7BA,SAAS;AAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getCirclePath","cx","cy","r","Skia","Path","Make","addCircle"],"sourceRoot":"../../src","sources":["get-circle-path.ts"],"mappings":";;;;;;AAAA;AAIO,MAAMA,aAAa,GAAG,QAAwC;
|
1
|
+
{"version":3,"names":["getCirclePath","cx","cy","r","Skia","Path","Make","addCircle"],"sourceRoot":"../../src","sources":["get-circle-path.ts"],"mappings":";;;;;;AAAA;AAIO,MAAMA,aAAa,GAAG,QAAwC;EACnE,SAAS;;EAAC,IADkB;IAAEC,EAAE;IAAEC,EAAE;IAAEC;EAAuB,CAAC;EAE9D,OAAOC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE,CAACC,SAAS,CAACN,EAAE,EAAEC,EAAE,EAAEC,CAAC,CAAC;AAC9C,CAAC;AAAC"}
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
exports.getRoundedRectPath = exports.getRectPath = void 0;
|
7
7
|
var _reactNativeSkia = require("@shopify/react-native-skia");
|
8
8
|
const getRectPath = params => {
|
9
|
+
'worklet';
|
10
|
+
|
9
11
|
const skPath = _reactNativeSkia.Skia.Path.Make();
|
10
12
|
if ('rect' in params) {
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
12
13
|
const {
|
13
14
|
rect
|
14
15
|
} = params;
|
@@ -21,21 +22,22 @@ const getRectPath = params => {
|
|
21
22
|
width,
|
22
23
|
height
|
23
24
|
} = params;
|
24
|
-
skPath.addRect(
|
25
|
+
skPath.addRect(_reactNativeSkia.Skia.XYWHRect(x, y, width, height));
|
25
26
|
return skPath;
|
26
27
|
};
|
27
28
|
exports.getRectPath = getRectPath;
|
28
29
|
const getRoundedRectPath = params => {
|
30
|
+
'worklet';
|
31
|
+
|
29
32
|
const {
|
30
33
|
r
|
31
34
|
} = params;
|
32
35
|
const skPath = _reactNativeSkia.Skia.Path.Make();
|
33
36
|
if ('rect' in params) {
|
34
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
35
37
|
const {
|
36
38
|
rect
|
37
39
|
} = params;
|
38
|
-
skPath.addRRect(
|
40
|
+
skPath.addRRect(_reactNativeSkia.Skia.RRectXY(rect, r, r));
|
39
41
|
return skPath;
|
40
42
|
}
|
41
43
|
const {
|
@@ -44,7 +46,8 @@ const getRoundedRectPath = params => {
|
|
44
46
|
width,
|
45
47
|
height
|
46
48
|
} = params;
|
47
|
-
|
49
|
+
const roundedRect = _reactNativeSkia.Skia.RRectXY(_reactNativeSkia.Skia.XYWHRect(x, y, width, height), r, r);
|
50
|
+
skPath.addRRect(roundedRect);
|
48
51
|
return skPath;
|
49
52
|
};
|
50
53
|
exports.getRoundedRectPath = getRoundedRectPath;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getRectPath","params","skPath","Skia","Path","Make","rect","addRect","x","y","width","height","getRoundedRectPath","r","addRRect","
|
1
|
+
{"version":3,"names":["getRectPath","params","skPath","Skia","Path","Make","rect","addRect","x","y","width","height","XYWHRect","getRoundedRectPath","r","addRRect","RRectXY","roundedRect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":";;;;;;AAAA;AAWA,MAAMA,WAAW,GAAIC,MAAyB,IAAK;EACjD,SAAS;;EAET,MAAMC,MAAM,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIJ,MAAM,EAAE;IACpB,MAAM;MAAEK;IAAK,CAAC,GAAGL,MAAM;IAEvBC,MAAM,CAACK,OAAO,CAACD,IAAI,CAAC;IACpB,OAAOJ,MAAM;EACf;EACA,MAAM;IAAEM,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGV,MAAM;EAEtCC,MAAM,CAACK,OAAO,CAACJ,qBAAI,CAACS,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;EAClD,OAAOT,MAAM;AACf,CAAC;AAAC;AAMF,MAAMW,kBAAkB,GAAIZ,MAAgC,IAAK;EAC/D,SAAS;;EAET,MAAM;IAAEa;EAAE,CAAC,GAAGb,MAAM;EACpB,MAAMC,MAAM,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIJ,MAAM,EAAE;IACpB,MAAM;MAAEK;IAAK,CAAC,GAAGL,MAAM;IAEvBC,MAAM,CAACa,QAAQ,CAACZ,qBAAI,CAACa,OAAO,CAACV,IAAI,EAAEQ,CAAC,EAAEA,CAAC,CAAC,CAAC;IACzC,OAAOZ,MAAM;EACf;EACA,MAAM;IAAEM,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGV,MAAM;EAEtC,MAAMgB,WAAW,GAAGd,qBAAI,CAACa,OAAO,CAACb,qBAAI,CAACS,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,EAAEG,CAAC,EAAEA,CAAC,CAAC;EAC1EZ,MAAM,CAACa,QAAQ,CAACE,WAAW,CAAC;EAC5B,OAAOf,MAAM;AACf,CAAC;AAAC"}
|