react-native-skia-gesture 0.1.7 → 0.2.0
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/lib/commonjs/canvas/canvas.js +5 -3
- package/lib/commonjs/canvas/canvas.js.map +1 -1
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/hoc/with-touchable-handler.js.map +1 -1
- package/lib/commonjs/utils/get-rect-path.js +5 -2
- package/lib/commonjs/utils/get-rect-path.js.map +1 -1
- package/lib/commonjs/utils/unwrap-animated-value.js +4 -0
- package/lib/commonjs/utils/unwrap-animated-value.js.map +1 -1
- package/lib/module/canvas/canvas.js +5 -3
- package/lib/module/canvas/canvas.js.map +1 -1
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/hoc/with-touchable-handler.js.map +1 -1
- package/lib/module/utils/get-rect-path.js +5 -2
- package/lib/module/utils/get-rect-path.js.map +1 -1
- package/lib/module/utils/unwrap-animated-value.js +4 -0
- package/lib/module/utils/unwrap-animated-value.js.map +1 -1
- package/lib/typescript/canvas/canvas.d.ts +2 -2
- package/lib/typescript/canvas/canvas.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +4 -1
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/hoc/with-touchable-handler.d.ts +2 -2
- package/lib/typescript/hoc/with-touchable-handler.d.ts.map +1 -1
- package/lib/typescript/hooks/use-gesture-handler.d.ts +1 -1
- package/lib/typescript/hooks/use-gesture-handler.d.ts.map +1 -1
- package/lib/typescript/utils/get-rect-path.d.ts +1 -1
- package/lib/typescript/utils/get-rect-path.d.ts.map +1 -1
- package/lib/typescript/utils/unwrap-animated-value.d.ts +5 -1
- package/lib/typescript/utils/unwrap-animated-value.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/canvas/canvas.tsx +76 -70
- package/src/components/index.ts +1 -0
- package/src/hoc/with-touchable-handler.tsx +7 -9
- package/src/hooks/use-gesture-handler.ts +2 -2
- package/src/utils/get-rect-path.ts +7 -3
- package/src/utils/unwrap-animated-value.ts +13 -1
@@ -10,7 +10,7 @@ var _context = require("./context");
|
|
10
10
|
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
11
|
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
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
|
-
const Canvas = _ref => {
|
13
|
+
const Canvas = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
|
14
14
|
let {
|
15
15
|
children,
|
16
16
|
onTouch,
|
@@ -65,7 +65,9 @@ const Canvas = _ref => {
|
|
65
65
|
touchableRefs.current = {};
|
66
66
|
};
|
67
67
|
}, [touchableRefs]);
|
68
|
-
return /*#__PURE__*/_react.default.createElement(_reactNativeSkia.Canvas, _extends({
|
68
|
+
return /*#__PURE__*/_react.default.createElement(_reactNativeSkia.Canvas, _extends({
|
69
|
+
ref: ref
|
70
|
+
}, props, {
|
69
71
|
onTouch: touchInfo => {
|
70
72
|
touchHandler(touchInfo);
|
71
73
|
return onTouch === null || onTouch === void 0 ? void 0 : onTouch(touchInfo);
|
@@ -73,6 +75,6 @@ const Canvas = _ref => {
|
|
73
75
|
}), /*#__PURE__*/_react.default.createElement(_context.TouchHandlerContext.Provider, {
|
74
76
|
value: touchableRefs
|
75
77
|
}, children));
|
76
|
-
};
|
78
|
+
});
|
77
79
|
exports.Canvas = Canvas;
|
78
80
|
//# sourceMappingURL=canvas.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Canvas","children","onTouch","props","touchableRefs","useValue","activeKey","touchHandler","useMultiTouchHandler","onStart","event","keys","Object","current","i","length","key","touchableItem","isPointInPath","push","id","onActive","activatedKey","find","includes","toString","indexedKey","split","onEnd","filter","useEffect","touchInfo"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":";;;;;;AAAA;
|
1
|
+
{"version":3,"names":["Canvas","React","forwardRef","ref","children","onTouch","props","touchableRefs","useValue","activeKey","touchHandler","useMultiTouchHandler","onStart","event","keys","Object","current","i","length","key","touchableItem","isPointInPath","push","id","onActive","activatedKey","find","includes","toString","indexedKey","split","onEnd","filter","useEffect","touchInfo"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Circle","withTouchableHandler","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;AAMA;AAEA;
|
1
|
+
{"version":3,"names":["Circle","withTouchableHandler","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;AAMA;AAEA;AAEO,MAAMA,MAAM,GAAG,IAAAC,yBAAoB,EAACC,uBAAU,CAAC;AAAC;AAChD,MAAMC,WAAW,GAAG,IAAAF,yBAAoB,EAACG,4BAAe,CAAC;AAAC;AAC1D,MAAMC,IAAI,GAAG,IAAAJ,yBAAoB,EAACK,qBAAQ,CAAC;AAAC;AAC5C,MAAMC,IAAI,GAAG,IAAAN,yBAAoB,EAACO,qBAAQ,CAAC;AAAC"}
|
@@ -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","startingPoint","useValue","useCallback","event","current","x","y","translationX","translationY","isPointInPath","point","unwrapAnimatedValue","contains","name","Error","useEffect"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":";;;;;;AAAA;
|
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","startingPoint","useValue","useCallback","event","current","x","y","translationX","translationY","isPointInPath","point","unwrapAnimatedValue","contains","name","Error","useEffect"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":"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"}
|
@@ -29,12 +29,14 @@ const getRoundedRectPath = params => {
|
|
29
29
|
const {
|
30
30
|
r
|
31
31
|
} = params;
|
32
|
+
const skPath = _reactNativeSkia.Skia.Path.Make();
|
32
33
|
if ('rect' in params) {
|
33
34
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
34
35
|
const {
|
35
36
|
rect
|
36
37
|
} = params;
|
37
|
-
|
38
|
+
skPath.addRRect((0, _reactNativeSkia.rrect)(rect, r, r));
|
39
|
+
return skPath;
|
38
40
|
}
|
39
41
|
const {
|
40
42
|
x,
|
@@ -42,7 +44,8 @@ const getRoundedRectPath = params => {
|
|
42
44
|
width,
|
43
45
|
height
|
44
46
|
} = params;
|
45
|
-
|
47
|
+
skPath.addRRect((0, _reactNativeSkia.rrect)((0, _reactNativeSkia.rect)(x, y, width, height), r, r));
|
48
|
+
return skPath;
|
46
49
|
};
|
47
50
|
exports.getRoundedRectPath = getRoundedRectPath;
|
48
51
|
//# sourceMappingURL=get-rect-path.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["getRectPath","params","skPath","Skia","Path","Make","rect","addRect","x","y","width","height","getRoundedRectPath","r","addRRect","rrect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":";;;;;;AAAA;AAWA,MAAMA,WAAW,GAAIC,MAAyB,IAAK;EACjD,MAAMC,MAAM,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIJ,MAAM,EAAE;IACpB;IACA,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;EACtCC,MAAM,CAACK,OAAO,CAAC,IAAAD,qBAAI,EAACE,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;EACzC,OAAOT,MAAM;AACf,CAAC;AAAC;AAMF,MAAMU,kBAAkB,GAAIX,MAAgC,IAAK;EAC/D,MAAM;IAAEY;EAAE,CAAC,GAAGZ,MAAM;EACpB,IAAI,MAAM,
|
1
|
+
{"version":3,"names":["getRectPath","params","skPath","Skia","Path","Make","rect","addRect","x","y","width","height","getRoundedRectPath","r","addRRect","rrect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":";;;;;;AAAA;AAWA,MAAMA,WAAW,GAAIC,MAAyB,IAAK;EACjD,MAAMC,MAAM,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIJ,MAAM,EAAE;IACpB;IACA,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;EACtCC,MAAM,CAACK,OAAO,CAAC,IAAAD,qBAAI,EAACE,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;EACzC,OAAOT,MAAM;AACf,CAAC;AAAC;AAMF,MAAMU,kBAAkB,GAAIX,MAAgC,IAAK;EAC/D,MAAM;IAAEY;EAAE,CAAC,GAAGZ,MAAM;EACpB,MAAMC,MAAM,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIJ,MAAM,EAAE;IACpB;IACA,MAAM;MAAEK;IAAK,CAAC,GAAGL,MAAM;IACvBC,MAAM,CAACY,QAAQ,CAAC,IAAAC,sBAAK,EAACT,IAAI,EAAEO,CAAC,EAAEA,CAAC,CAAC,CAAC;IAClC,OAAOX,MAAM;EACf;EACA,MAAM;IAAEM,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGV,MAAM;EAEtCC,MAAM,CAACY,QAAQ,CAAC,IAAAC,sBAAK,EAAC,IAAAT,qBAAI,EAACE,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,EAAEE,CAAC,EAAEA,CAAC,CAAC,CAAC;EACvD,OAAOX,MAAM;AACf,CAAC;AAAC"}
|
@@ -8,6 +8,10 @@ const unwrapAnimatedValue = value => {
|
|
8
8
|
if (value.current != null) {
|
9
9
|
return value.current;
|
10
10
|
}
|
11
|
+
if (value.selector != null) {
|
12
|
+
const skiaValueWithSelector = value;
|
13
|
+
return skiaValueWithSelector.selector(skiaValueWithSelector.value.current);
|
14
|
+
}
|
11
15
|
return value;
|
12
16
|
};
|
13
17
|
exports.unwrapAnimatedValue = unwrapAnimatedValue;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["unwrapAnimatedValue","value","current","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":";;;;;;
|
1
|
+
{"version":3,"names":["unwrapAnimatedValue","value","current","selector","skiaValueWithSelector","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":";;;;;;AAMA,MAAMA,mBAAmB,GACvBC,KAAkD,IAC5C;EACN,IAAKA,KAAK,CAAkBC,OAAO,IAAI,IAAI,EAAE;IAC3C,OAAQD,KAAK,CAAkBC,OAAO;EACxC;EAEA,IAAKD,KAAK,CAA8BE,QAAQ,IAAI,IAAI,EAAE;IACxD,MAAMC,qBAAqB,GAAGH,KAAiC;IAC/D,OAAOG,qBAAqB,CAACD,QAAQ,CAACC,qBAAqB,CAACH,KAAK,CAACC,OAAO,CAAC;EAC5E;EAEA,OAAOD,KAAK;AACd,CAAC;AAAC;AAEF,MAAMI,yBAAyB,GAC7BJ,KAAoC,IACjB;EACnB,OAAOK,MAAM,CAACC,IAAI,CAACN,KAAK,CAAC,CAACO,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;IAC7C,OAAO;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGV,mBAAmB,CAACC,KAAK,CAACS,GAAG,CAAC;IAAE,CAAC;EAC3D,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAAC"}
|
@@ -2,7 +2,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
2
2
|
import { Canvas as SkiaCanvas, useMultiTouchHandler, useValue } from '@shopify/react-native-skia';
|
3
3
|
import React, { useEffect } from 'react';
|
4
4
|
import { TouchHandlerContext } from './context';
|
5
|
-
const Canvas = _ref => {
|
5
|
+
const Canvas = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
6
6
|
let {
|
7
7
|
children,
|
8
8
|
onTouch,
|
@@ -57,7 +57,9 @@ const Canvas = _ref => {
|
|
57
57
|
touchableRefs.current = {};
|
58
58
|
};
|
59
59
|
}, [touchableRefs]);
|
60
|
-
return /*#__PURE__*/React.createElement(SkiaCanvas, _extends({
|
60
|
+
return /*#__PURE__*/React.createElement(SkiaCanvas, _extends({
|
61
|
+
ref: ref
|
62
|
+
}, props, {
|
61
63
|
onTouch: touchInfo => {
|
62
64
|
touchHandler(touchInfo);
|
63
65
|
return onTouch === null || onTouch === void 0 ? void 0 : onTouch(touchInfo);
|
@@ -65,6 +67,6 @@ const Canvas = _ref => {
|
|
65
67
|
}), /*#__PURE__*/React.createElement(TouchHandlerContext.Provider, {
|
66
68
|
value: touchableRefs
|
67
69
|
}, children));
|
68
|
-
};
|
70
|
+
});
|
69
71
|
export { Canvas };
|
70
72
|
//# sourceMappingURL=canvas.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Canvas","SkiaCanvas","useMultiTouchHandler","useValue","React","useEffect","TouchHandlerContext","children","onTouch","props","touchableRefs","activeKey","touchHandler","onStart","event","keys","Object","current","i","length","key","touchableItem","isPointInPath","push","id","onActive","activatedKey","find","includes","toString","indexedKey","split","onEnd","filter","touchInfo"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":";AAAA,SACEA,MAAM,IAAIC,UAAU,EAEpBC,oBAAoB,EACpBC,QAAQ,
|
1
|
+
{"version":3,"names":["Canvas","SkiaCanvas","useMultiTouchHandler","useValue","React","useEffect","TouchHandlerContext","forwardRef","ref","children","onTouch","props","touchableRefs","activeKey","touchHandler","onStart","event","keys","Object","current","i","length","key","touchableItem","isPointInPath","push","id","onActive","activatedKey","find","includes","toString","indexedKey","split","onEnd","filter","touchInfo"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Circle","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath","withTouchableHandler","Canvas"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SACEA,MAAM,IAAIC,UAAU,EACpBC,WAAW,IAAIC,eAAe,EAC9BC,IAAI,IAAIC,QAAQ,EAChBC,IAAI,IAAIC,QAAQ,QACX,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,QAAQ;AAE7C,SAASC,MAAM,QAAQ,WAAW;
|
1
|
+
{"version":3,"names":["Circle","SkiaCircle","RoundedRect","SkiaRoundedRect","Rect","SkiaRect","Path","SkiaPath","withTouchableHandler","Canvas"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SACEA,MAAM,IAAIC,UAAU,EACpBC,WAAW,IAAIC,eAAe,EAC9BC,IAAI,IAAIC,QAAQ,EAChBC,IAAI,IAAIC,QAAQ,QACX,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,QAAQ;AAE7C,SAASC,MAAM,QAAQ,WAAW;AAElC,OAAO,MAAMT,MAAM,GAAGQ,oBAAoB,CAACP,UAAU,CAAC;AACtD,OAAO,MAAMC,WAAW,GAAGM,oBAAoB,CAACL,eAAe,CAAC;AAChE,OAAO,MAAMC,IAAI,GAAGI,oBAAoB,CAACH,QAAQ,CAAC;AAClD,OAAO,MAAMC,IAAI,GAAGE,oBAAoB,CAACD,QAAQ,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useValue","useCallback","useEffect","useId","getCirclePath","getRectPath","getRoundedRectPath","unwrapAnimatedValue","unwrapAnimatedValueObject","useTouchHandlerContext","getSkiaPath","key","props","unwrappedProps","path","withTouchableHandler","Component","onStart","onStartProp","onActive","onActiveProp","onEnd","onEndProp","touchablePath","id","ref","startingPoint","event","current","x","y","translationX","translationY","isPointInPath","point","contains","name","Error"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":"AAAA,SAMEA,QAAQ,
|
1
|
+
{"version":3,"names":["useValue","useCallback","useEffect","useId","getCirclePath","getRectPath","getRoundedRectPath","unwrapAnimatedValue","unwrapAnimatedValueObject","useTouchHandlerContext","getSkiaPath","key","props","unwrappedProps","path","withTouchableHandler","Component","onStart","onStartProp","onActive","onActiveProp","onEnd","onEndProp","touchablePath","id","ref","startingPoint","event","current","x","y","translationX","translationY","isPointInPath","point","contains","name","Error"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":"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"}
|
@@ -22,12 +22,14 @@ const getRoundedRectPath = params => {
|
|
22
22
|
const {
|
23
23
|
r
|
24
24
|
} = params;
|
25
|
+
const skPath = Skia.Path.Make();
|
25
26
|
if ('rect' in params) {
|
26
27
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
27
28
|
const {
|
28
29
|
rect
|
29
30
|
} = params;
|
30
|
-
|
31
|
+
skPath.addRRect(rrect(rect, r, r));
|
32
|
+
return skPath;
|
31
33
|
}
|
32
34
|
const {
|
33
35
|
x,
|
@@ -35,7 +37,8 @@ const getRoundedRectPath = params => {
|
|
35
37
|
width,
|
36
38
|
height
|
37
39
|
} = params;
|
38
|
-
|
40
|
+
skPath.addRRect(rrect(rect(x, y, width, height), r, r));
|
41
|
+
return skPath;
|
39
42
|
};
|
40
43
|
export { getRectPath, getRoundedRectPath };
|
41
44
|
//# sourceMappingURL=get-rect-path.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["rect","rrect","Skia","getRectPath","params","skPath","Path","Make","addRect","x","y","width","height","getRoundedRectPath","r","addRRect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":"AAAA,SAASA,IAAI,EAAEC,KAAK,EAAEC,IAAI,
|
1
|
+
{"version":3,"names":["rect","rrect","Skia","getRectPath","params","skPath","Path","Make","addRect","x","y","width","height","getRoundedRectPath","r","addRRect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":"AAAA,SAASA,IAAI,EAAEC,KAAK,EAAEC,IAAI,QAAqB,4BAA4B;AAW3E,MAAMC,WAAW,GAAIC,MAAyB,IAAK;EACjD,MAAMC,MAAM,GAAGH,IAAI,CAACI,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIH,MAAM,EAAE;IACpB;IACA,MAAM;MAAEJ;IAAK,CAAC,GAAGI,MAAM;IAEvBC,MAAM,CAACG,OAAO,CAACR,IAAI,CAAC;IACpB,OAAOK,MAAM;EACf;EACA,MAAM;IAAEI,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGR,MAAM;EACtCC,MAAM,CAACG,OAAO,CAACR,IAAI,CAACS,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;EACzC,OAAOP,MAAM;AACf,CAAC;AAMD,MAAMQ,kBAAkB,GAAIT,MAAgC,IAAK;EAC/D,MAAM;IAAEU;EAAE,CAAC,GAAGV,MAAM;EACpB,MAAMC,MAAM,GAAGH,IAAI,CAACI,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIH,MAAM,EAAE;IACpB;IACA,MAAM;MAAEJ;IAAK,CAAC,GAAGI,MAAM;IACvBC,MAAM,CAACU,QAAQ,CAACd,KAAK,CAACD,IAAI,EAAEc,CAAC,EAAEA,CAAC,CAAC,CAAC;IAClC,OAAOT,MAAM;EACf;EACA,MAAM;IAAEI,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGR,MAAM;EAEtCC,MAAM,CAACU,QAAQ,CAACd,KAAK,CAACD,IAAI,CAACS,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,EAAEE,CAAC,EAAEA,CAAC,CAAC,CAAC;EACvD,OAAOT,MAAM;AACf,CAAC;AAED,SAASF,WAAW,EAAEU,kBAAkB"}
|
@@ -2,6 +2,10 @@ const unwrapAnimatedValue = value => {
|
|
2
2
|
if (value.current != null) {
|
3
3
|
return value.current;
|
4
4
|
}
|
5
|
+
if (value.selector != null) {
|
6
|
+
const skiaValueWithSelector = value;
|
7
|
+
return skiaValueWithSelector.selector(skiaValueWithSelector.value.current);
|
8
|
+
}
|
5
9
|
return value;
|
6
10
|
};
|
7
11
|
const unwrapAnimatedValueObject = value => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["unwrapAnimatedValue","value","current","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":"
|
1
|
+
{"version":3,"names":["unwrapAnimatedValue","value","current","selector","skiaValueWithSelector","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":"AAMA,MAAMA,mBAAmB,GACvBC,KAAkD,IAC5C;EACN,IAAKA,KAAK,CAAkBC,OAAO,IAAI,IAAI,EAAE;IAC3C,OAAQD,KAAK,CAAkBC,OAAO;EACxC;EAEA,IAAKD,KAAK,CAA8BE,QAAQ,IAAI,IAAI,EAAE;IACxD,MAAMC,qBAAqB,GAAGH,KAAiC;IAC/D,OAAOG,qBAAqB,CAACD,QAAQ,CAACC,qBAAqB,CAACH,KAAK,CAACC,OAAO,CAAC;EAC5E;EAEA,OAAOD,KAAK;AACd,CAAC;AAED,MAAMI,yBAAyB,GAC7BJ,KAAoC,IACjB;EACnB,OAAOK,MAAM,CAACC,IAAI,CAACN,KAAK,CAAC,CAACO,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;IAC7C,OAAO;MAAE,GAAGD,GAAG;MAAE,CAACC,GAAG,GAAGV,mBAAmB,CAACC,KAAK,CAACS,GAAG,CAAC;IAAE,CAAC;EAC3D,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAASV,mBAAmB,EAAEK,yBAAyB"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import { CanvasProps } from '@shopify/react-native-skia';
|
1
|
+
import { type CanvasProps, SkiaDomView } from '@shopify/react-native-skia';
|
2
2
|
import React from 'react';
|
3
|
-
declare const Canvas: React.
|
3
|
+
declare const Canvas: React.ForwardRefExoticComponent<Pick<CanvasProps, "children" | "onTouch" | "mode" | "debug" | "onSize" | "hitSlop" | "onLayout" | "pointerEvents" | "removeClippedSubviews" | "style" | "testID" | "nativeID" | "collapsable" | "needsOffscreenAlphaCompositing" | "renderToHardwareTextureAndroid" | "focusable" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxProperties" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "accessibilityHint" | "accessibilityValue" | "onAccessibilityAction" | "accessibilityLiveRegion" | "importantForAccessibility" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors"> & React.RefAttributes<SkiaDomView>>;
|
4
4
|
export { Canvas };
|
5
5
|
//# sourceMappingURL=canvas.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAGhB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAoB,MAAM,OAAO,CAAC;AAMzC,QAAA,MAAM,MAAM,2kDA4EX,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
@@ -2,5 +2,8 @@ export { Canvas } from '../canvas';
|
|
2
2
|
export declare const Circle: ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: import("@shopify/react-native-skia").AnimatedProps<import("@shopify/react-native-skia").CircleProps, never> & Partial<import("../hoc").TouchableHandlerProps>) => JSX.Element;
|
3
3
|
export declare const RoundedRect: ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: import("@shopify/react-native-skia").AnimatedProps<import("@shopify/react-native-skia").RoundedRectProps, never> & Partial<import("../hoc").TouchableHandlerProps>) => JSX.Element;
|
4
4
|
export declare const Rect: ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: import("@shopify/react-native-skia").AnimatedProps<import("@shopify/react-native-skia").RectProps, never> & Partial<import("../hoc").TouchableHandlerProps>) => JSX.Element;
|
5
|
-
export declare const Path: ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: import("@shopify/react-native-skia").AnimatedProps<import("@shopify/react-native-skia").PathProps, never
|
5
|
+
export declare const Path: ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: Omit<import("@shopify/react-native-skia").AnimatedProps<import("@shopify/react-native-skia").PathProps, never>, "start" | "end"> & {
|
6
|
+
start?: import("@shopify/react-native-skia").AnimatedProp<number, any> | undefined;
|
7
|
+
end?: import("@shopify/react-native-skia").AnimatedProp<number, any> | undefined;
|
8
|
+
} & Partial<import("../hoc").TouchableHandlerProps>) => JSX.Element;
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,eAAO,MAAM,MAAM,6QAAmC,CAAC;AACvD,eAAO,MAAM,WAAW,kRAAwC,CAAC;AACjE,eAAO,MAAM,IAAI,2QAAiC,CAAC;AACnD,eAAO,MAAM,IAAI;;;mEAAiC,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ExtendedTouchInfo,
|
1
|
+
import { type ExtendedTouchInfo, type SkiaValue, type SkPath, type TouchInfo } from '@shopify/react-native-skia';
|
2
2
|
export type TranslationInfo = {
|
3
3
|
translationX: number;
|
4
4
|
translationY: number;
|
@@ -9,7 +9,7 @@ export type TouchableHandlerProps = {
|
|
9
9
|
onEnd: (touchInfo: ExtendedTouchInfo & TranslationInfo) => void;
|
10
10
|
touchablePath: SkPath | SkiaValue<SkPath>;
|
11
11
|
};
|
12
|
-
type WithTouchableHandlerProps<T> =
|
12
|
+
type WithTouchableHandlerProps<T> = T & Partial<TouchableHandlerProps>;
|
13
13
|
declare const withTouchableHandler: <T>(Component: (props: WithTouchableHandlerProps<T>) => JSX.Element) => ({ onStart: onStartProp, onActive: onActiveProp, onEnd: onEndProp, touchablePath, ...props }: WithTouchableHandlerProps<T>) => JSX.Element;
|
14
14
|
export { withTouchableHandler };
|
15
15
|
//# sourceMappingURL=with-touchable-handler.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"with-touchable-handler.d.ts","sourceRoot":"","sources":["../../../src/hoc/with-touchable-handler.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,
|
1
|
+
{"version":3,"file":"with-touchable-handler.d.ts","sourceRoot":"","sources":["../../../src/hoc/with-touchable-handler.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,SAAS,EAGf,MAAM,4BAA4B,CAAC;AAUpC,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe,KAAK,IAAI,CAAC;IACnE,KAAK,EAAE,CAAC,SAAS,EAAE,iBAAiB,GAAG,eAAe,KAAK,IAAI,CAAC;IAChE,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;AAEF,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAmBvE,QAAA,MAAM,oBAAoB,0DAC4B,WAAW,+IA2EhE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ExtendedTouchInfo, TouchInfo } from '@shopify/react-native-skia';
|
1
|
+
import { type ExtendedTouchInfo, type TouchInfo } from '@shopify/react-native-skia';
|
2
2
|
import type { TranslationInfo } from '../hoc';
|
3
3
|
type UseGestureHandlerParams<ContextType> = {
|
4
4
|
onStart?: (touchInfo: TouchInfo, context: ContextType) => void;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"use-gesture-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-gesture-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,
|
1
|
+
{"version":3,"file":"use-gesture-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-gesture-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAEf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,KAAK,uBAAuB,CAAC,WAAW,IAAI;IAC1C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CACT,iBAAiB,EAAE,iBAAiB,GAAG,eAAe,EACtD,OAAO,EAAE,WAAW,KACjB,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,CACN,iBAAiB,EAAE,iBAAiB,GAAG,eAAe,EACtD,OAAO,EAAE,WAAW,KACjB,IAAI,CAAC;CACX,CAAC;AAEF,QAAA,MAAM,iBAAiB;yBAQP,SAAS;kCAQD,iBAAiB,GAAG,eAAe;+BAQnC,iBAAiB,GAAG,eAAe;CAY1D,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-rect-path.d.ts","sourceRoot":"","sources":["../../../src/utils/get-rect-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"get-rect-path.d.ts","sourceRoot":"","sources":["../../../src/utils/get-rect-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE5E,KAAK,iBAAiB,GAClB;IACE,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,QAAA,MAAM,WAAW,WAAY,iBAAiB,gDAY7C,CAAC;AAEF,KAAK,wBAAwB,GAAG,iBAAiB,GAAG;IAClD,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,QAAA,MAAM,kBAAkB,WAAY,wBAAwB,gDAa3D,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC"}
|
@@ -1,5 +1,9 @@
|
|
1
1
|
import type { SkiaValue } from '@shopify/react-native-skia';
|
2
|
-
|
2
|
+
type SkiaValueWithSelector<T> = {
|
3
|
+
value: SkiaValue<T>;
|
4
|
+
selector: (v: T) => T;
|
5
|
+
};
|
6
|
+
declare const unwrapAnimatedValue: <T>(value: T | SkiaValue<T> | SkiaValueWithSelector<T>) => T;
|
3
7
|
declare const unwrapAnimatedValueObject: <T>(value: Record<any, T | SkiaValue<T>>) => Record<any, T>;
|
4
8
|
export { unwrapAnimatedValue, unwrapAnimatedValueObject };
|
5
9
|
//# sourceMappingURL=unwrap-animated-value.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"unwrap-animated-value.d.ts","sourceRoot":"","sources":["../../../src/utils/unwrap-animated-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,QAAA,MAAM,mBAAmB,
|
1
|
+
{"version":3,"file":"unwrap-animated-value.d.ts","sourceRoot":"","sources":["../../../src/utils/unwrap-animated-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAC9B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;CACvB,CAAC;AACF,QAAA,MAAM,mBAAmB,8DAaxB,CAAC;AAEF,QAAA,MAAM,yBAAyB,6DAM9B,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-skia-gesture",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.2.0",
|
4
4
|
"description": "A detection system for React Native Skia components",
|
5
5
|
"main": "lib/commonjs/index",
|
6
6
|
"module": "lib/module/index",
|
@@ -55,7 +55,7 @@
|
|
55
55
|
"@evilmartians/lefthook": "^1.2.2",
|
56
56
|
"@react-native-community/eslint-config": "^3.0.2",
|
57
57
|
"@release-it/conventional-changelog": "^5.0.0",
|
58
|
-
"@shopify/react-native-skia": "0.1.
|
58
|
+
"@shopify/react-native-skia": "0.1.172",
|
59
59
|
"@types/jest": "^28.1.2",
|
60
60
|
"@types/react": "18.0.26",
|
61
61
|
"@types/react-native": "0.70.0",
|
package/src/canvas/canvas.tsx
CHANGED
@@ -1,86 +1,92 @@
|
|
1
1
|
import {
|
2
2
|
Canvas as SkiaCanvas,
|
3
|
-
CanvasProps,
|
3
|
+
type CanvasProps,
|
4
4
|
useMultiTouchHandler,
|
5
5
|
useValue,
|
6
|
+
SkiaDomView,
|
6
7
|
} from '@shopify/react-native-skia';
|
7
8
|
import React, { useEffect } from 'react';
|
8
|
-
import {
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
import {
|
10
|
+
TouchHandlerContext,
|
11
|
+
type TouchableHandlerContextType,
|
12
|
+
} from './context';
|
12
13
|
|
13
|
-
|
14
|
+
const Canvas = React.forwardRef<SkiaDomView, CanvasProps>(
|
15
|
+
({ children, onTouch, ...props }, ref) => {
|
16
|
+
const touchableRefs = useValue<TouchableHandlerContextType['current']>({});
|
14
17
|
|
15
|
-
|
16
|
-
{
|
17
|
-
onStart: (event) => {
|
18
|
-
const keys = Object.keys(touchableRefs.current);
|
19
|
-
for (let i = 0; i < keys.length; i++) {
|
20
|
-
const key = keys[i] as string;
|
21
|
-
const touchableItem = touchableRefs.current[key];
|
18
|
+
const activeKey = useValue<string[]>([]);
|
22
19
|
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
const touchHandler = useMultiTouchHandler(
|
21
|
+
{
|
22
|
+
onStart: (event) => {
|
23
|
+
const keys = Object.keys(touchableRefs.current);
|
24
|
+
for (let i = 0; i < keys.length; i++) {
|
25
|
+
const key = keys[i] as string;
|
26
|
+
const touchableItem = touchableRefs.current[key];
|
27
|
+
if (touchableItem?.isPointInPath(event)) {
|
28
|
+
activeKey.current.push(`${key}__${event.id}`);
|
29
|
+
touchableItem.onStart?.(event);
|
30
|
+
return;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
},
|
34
|
+
onActive: (event) => {
|
35
|
+
const activatedKey = activeKey.current.find((key) =>
|
36
|
+
key.includes(event.id.toString())
|
37
|
+
);
|
38
|
+
if (!activatedKey) {
|
26
39
|
return;
|
27
40
|
}
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
if (!indexedKey) {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
const touchableItem = touchableRefs.current[indexedKey];
|
56
|
-
activeKey.current = activeKey.current.filter(
|
57
|
-
(key) => !key.includes(event.id.toString())
|
58
|
-
);
|
59
|
-
return touchableItem?.onEnd?.(event);
|
41
|
+
const indexedKey = activatedKey.split('__')?.[0];
|
42
|
+
if (!indexedKey) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
const touchableItem = touchableRefs.current[indexedKey];
|
46
|
+
return touchableItem?.onActive?.(event);
|
47
|
+
},
|
48
|
+
onEnd: (event) => {
|
49
|
+
const activatedKey = activeKey.current.find((key) =>
|
50
|
+
key.includes(event.id.toString())
|
51
|
+
);
|
52
|
+
if (!activatedKey) {
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
const indexedKey = activatedKey.split('__')?.[0];
|
56
|
+
if (!indexedKey) {
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
const touchableItem = touchableRefs.current[indexedKey];
|
60
|
+
activeKey.current = activeKey.current.filter(
|
61
|
+
(key) => !key.includes(event.id.toString())
|
62
|
+
);
|
63
|
+
return touchableItem?.onEnd?.(event);
|
64
|
+
},
|
60
65
|
},
|
61
|
-
|
62
|
-
|
63
|
-
);
|
66
|
+
[touchableRefs, activeKey]
|
67
|
+
);
|
64
68
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
69
|
+
useEffect(() => {
|
70
|
+
return () => {
|
71
|
+
touchableRefs.current = {};
|
72
|
+
};
|
73
|
+
}, [touchableRefs]);
|
70
74
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
{
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
75
|
+
return (
|
76
|
+
<SkiaCanvas
|
77
|
+
ref={ref as React.RefObject<SkiaDomView> & React.Ref<SkiaDomView>}
|
78
|
+
{...props}
|
79
|
+
onTouch={(touchInfo) => {
|
80
|
+
touchHandler(touchInfo);
|
81
|
+
return onTouch?.(touchInfo);
|
82
|
+
}}
|
83
|
+
>
|
84
|
+
<TouchHandlerContext.Provider value={touchableRefs}>
|
85
|
+
{children}
|
86
|
+
</TouchHandlerContext.Provider>
|
87
|
+
</SkiaCanvas>
|
88
|
+
);
|
89
|
+
}
|
90
|
+
);
|
85
91
|
|
86
92
|
export { Canvas };
|
package/src/components/index.ts
CHANGED
@@ -7,6 +7,7 @@ import {
|
|
7
7
|
import { withTouchableHandler } from '../hoc';
|
8
8
|
|
9
9
|
export { Canvas } from '../canvas';
|
10
|
+
|
10
11
|
export const Circle = withTouchableHandler(SkiaCircle);
|
11
12
|
export const RoundedRect = withTouchableHandler(SkiaRoundedRect);
|
12
13
|
export const Rect = withTouchableHandler(SkiaRect);
|
@@ -1,11 +1,10 @@
|
|
1
1
|
import {
|
2
|
-
ExtendedTouchInfo,
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
type ExtendedTouchInfo,
|
3
|
+
type SkiaValue,
|
4
|
+
type SkPath,
|
5
|
+
type TouchInfo,
|
6
|
+
type Vector,
|
7
7
|
useValue,
|
8
|
-
Vector,
|
9
8
|
} from '@shopify/react-native-skia';
|
10
9
|
import { useCallback, useEffect, useId } from 'react';
|
11
10
|
import { getCirclePath } from '../utils/get-circle-path';
|
@@ -28,8 +27,7 @@ export type TouchableHandlerProps = {
|
|
28
27
|
touchablePath: SkPath | SkiaValue<SkPath>;
|
29
28
|
};
|
30
29
|
|
31
|
-
type WithTouchableHandlerProps<T> =
|
32
|
-
Partial<TouchableHandlerProps>;
|
30
|
+
type WithTouchableHandlerProps<T> = T & Partial<TouchableHandlerProps>;
|
33
31
|
|
34
32
|
const getSkiaPath = (key: string, props: any) => {
|
35
33
|
const unwrappedProps = unwrapAnimatedValueObject(props) as any;
|
@@ -96,8 +94,8 @@ const withTouchableHandler = <T,>(
|
|
96
94
|
if (touchablePath) {
|
97
95
|
return unwrapAnimatedValue(touchablePath).contains(point.x, point.y);
|
98
96
|
}
|
99
|
-
|
100
97
|
const path = getSkiaPath(Component.name, props);
|
98
|
+
|
101
99
|
if (!path) {
|
102
100
|
throw Error('No touchablePath provided');
|
103
101
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { rect, rrect, Skia, SkRect } from '@shopify/react-native-skia';
|
1
|
+
import { rect, rrect, Skia, type SkRect } from '@shopify/react-native-skia';
|
2
2
|
|
3
3
|
type GetRectPathParams =
|
4
4
|
| {
|
@@ -29,13 +29,17 @@ type GetRoundedRectPathParams = GetRectPathParams & {
|
|
29
29
|
|
30
30
|
const getRoundedRectPath = (params: GetRoundedRectPathParams) => {
|
31
31
|
const { r } = params;
|
32
|
+
const skPath = Skia.Path.Make();
|
32
33
|
if ('rect' in params) {
|
33
34
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
34
35
|
const { rect } = params;
|
35
|
-
|
36
|
+
skPath.addRRect(rrect(rect, r, r));
|
37
|
+
return skPath;
|
36
38
|
}
|
37
39
|
const { x, y, width, height } = params;
|
38
|
-
|
40
|
+
|
41
|
+
skPath.addRRect(rrect(rect(x, y, width, height), r, r));
|
42
|
+
return skPath;
|
39
43
|
};
|
40
44
|
|
41
45
|
export { getRectPath, getRoundedRectPath };
|
@@ -1,9 +1,21 @@
|
|
1
1
|
import type { SkiaValue } from '@shopify/react-native-skia';
|
2
2
|
|
3
|
-
|
3
|
+
type SkiaValueWithSelector<T> = {
|
4
|
+
value: SkiaValue<T>;
|
5
|
+
selector: (v: T) => T;
|
6
|
+
};
|
7
|
+
const unwrapAnimatedValue = <T>(
|
8
|
+
value: SkiaValue<T> | SkiaValueWithSelector<T> | T
|
9
|
+
): T => {
|
4
10
|
if ((value as SkiaValue<T>).current != null) {
|
5
11
|
return (value as SkiaValue<T>).current;
|
6
12
|
}
|
13
|
+
|
14
|
+
if ((value as SkiaValueWithSelector<T>).selector != null) {
|
15
|
+
const skiaValueWithSelector = value as SkiaValueWithSelector<T>;
|
16
|
+
return skiaValueWithSelector.selector(skiaValueWithSelector.value.current);
|
17
|
+
}
|
18
|
+
|
7
19
|
return value as T;
|
8
20
|
};
|
9
21
|
|