react-native-skia-gesture 0.2.0 → 0.3.2

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.
Files changed (63) hide show
  1. package/README.md +77 -20
  2. package/lib/commonjs/canvas/canvas.js +68 -56
  3. package/lib/commonjs/canvas/canvas.js.map +1 -1
  4. package/lib/commonjs/canvas/context.js +1 -1
  5. package/lib/commonjs/canvas/context.js.map +1 -1
  6. package/lib/commonjs/components/index.js +4 -4
  7. package/lib/commonjs/components/index.js.map +1 -1
  8. package/lib/commonjs/hoc/with-touchable-handler.js +29 -34
  9. package/lib/commonjs/hoc/with-touchable-handler.js.map +1 -1
  10. package/lib/commonjs/hooks/use-gesture-handler.js +11 -5
  11. package/lib/commonjs/hooks/use-gesture-handler.js.map +1 -1
  12. package/lib/commonjs/index.js +1 -1
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/commonjs/utils/get-circle-path.js +2 -0
  15. package/lib/commonjs/utils/get-circle-path.js.map +1 -1
  16. package/lib/commonjs/utils/get-rect-path.js +8 -5
  17. package/lib/commonjs/utils/get-rect-path.js.map +1 -1
  18. package/lib/commonjs/utils/unwrap-animated-value.js +7 -0
  19. package/lib/commonjs/utils/unwrap-animated-value.js.map +1 -1
  20. package/lib/module/canvas/canvas.js +70 -58
  21. package/lib/module/canvas/canvas.js.map +1 -1
  22. package/lib/module/canvas/context.js +1 -1
  23. package/lib/module/canvas/context.js.map +1 -1
  24. package/lib/module/components/index.js +4 -4
  25. package/lib/module/components/index.js.map +1 -1
  26. package/lib/module/hoc/with-touchable-handler.js +28 -34
  27. package/lib/module/hoc/with-touchable-handler.js.map +1 -1
  28. package/lib/module/hooks/use-gesture-handler.js +11 -5
  29. package/lib/module/hooks/use-gesture-handler.js.map +1 -1
  30. package/lib/module/index.js +1 -1
  31. package/lib/module/index.js.map +1 -1
  32. package/lib/module/utils/get-circle-path.js +2 -0
  33. package/lib/module/utils/get-circle-path.js.map +1 -1
  34. package/lib/module/utils/get-rect-path.js +9 -6
  35. package/lib/module/utils/get-rect-path.js.map +1 -1
  36. package/lib/module/utils/unwrap-animated-value.js +7 -0
  37. package/lib/module/utils/unwrap-animated-value.js.map +1 -1
  38. package/lib/typescript/canvas/canvas.d.ts +7 -2
  39. package/lib/typescript/canvas/canvas.d.ts.map +1 -1
  40. package/lib/typescript/canvas/context.d.ts +6 -5
  41. package/lib/typescript/canvas/context.d.ts.map +1 -1
  42. package/lib/typescript/components/index.d.ts +2 -2
  43. package/lib/typescript/components/index.d.ts.map +1 -1
  44. package/lib/typescript/hoc/with-touchable-handler.d.ts +7 -9
  45. package/lib/typescript/hoc/with-touchable-handler.d.ts.map +1 -1
  46. package/lib/typescript/hooks/use-gesture-handler.d.ts +7 -8
  47. package/lib/typescript/hooks/use-gesture-handler.d.ts.map +1 -1
  48. package/lib/typescript/index.d.ts +1 -1
  49. package/lib/typescript/index.d.ts.map +1 -1
  50. package/lib/typescript/utils/get-circle-path.d.ts.map +1 -1
  51. package/lib/typescript/utils/get-rect-path.d.ts.map +1 -1
  52. package/lib/typescript/utils/unwrap-animated-value.d.ts +2 -1
  53. package/lib/typescript/utils/unwrap-animated-value.d.ts.map +1 -1
  54. package/package.json +6 -4
  55. package/src/canvas/canvas.tsx +109 -81
  56. package/src/canvas/context.tsx +19 -10
  57. package/src/components/index.ts +5 -4
  58. package/src/hoc/with-touchable-handler.tsx +40 -35
  59. package/src/hooks/use-gesture-handler.ts +25 -16
  60. package/src/index.ts +1 -1
  61. package/src/utils/get-circle-path.ts +1 -0
  62. package/src/utils/get-rect-path.ts +11 -6
  63. package/src/utils/unwrap-animated-value.ts +9 -1
@@ -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((0, _reactNativeSkia.rect)(x, y, width, height));
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((0, _reactNativeSkia.rrect)(rect, r, r));
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
- skPath.addRRect((0, _reactNativeSkia.rrect)((0, _reactNativeSkia.rect)(x, y, width, height), r, r));
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","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"}
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"}
@@ -5,6 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.unwrapAnimatedValueObject = exports.unwrapAnimatedValue = void 0;
7
7
  const unwrapAnimatedValue = value => {
8
+ 'worklet';
9
+
10
+ if (value.value != null) {
11
+ return value.value;
12
+ }
8
13
  if (value.current != null) {
9
14
  return value.current;
10
15
  }
@@ -16,6 +21,8 @@ const unwrapAnimatedValue = value => {
16
21
  };
17
22
  exports.unwrapAnimatedValue = unwrapAnimatedValue;
18
23
  const unwrapAnimatedValueObject = value => {
24
+ 'worklet';
25
+
19
26
  return Object.keys(value).reduce((acc, key) => {
20
27
  return {
21
28
  ...acc,
@@ -1 +1 @@
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"}
1
+ {"version":3,"names":["unwrapAnimatedValue","value","current","selector","skiaValueWithSelector","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":";;;;;;AAOA,MAAMA,mBAAmB,GACvBC,KAA4E,IACtE;EACN,SAAS;;EAET,IAAKA,KAAK,CAA6BA,KAAK,IAAI,IAAI,EAAE;IACpD,OAAQA,KAAK,CAA6BA,KAAK;EACjD;EAEA,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,SAAS;;EACT,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"}
@@ -1,72 +1,84 @@
1
- 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); }
2
- import { Canvas as SkiaCanvas, useMultiTouchHandler, useValue } from '@shopify/react-native-skia';
3
- import React, { useEffect } from 'react';
1
+ import { Canvas as SkiaCanvas } from '@shopify/react-native-skia';
2
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
3
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
4
+ import Animated, { useSharedValue } from 'react-native-reanimated';
4
5
  import { TouchHandlerContext } from './context';
5
- const Canvas = /*#__PURE__*/React.forwardRef((_ref, ref) => {
6
+ const AnimatedSkiaCanvas = Animated.createAnimatedComponent(SkiaCanvas);
7
+ const Canvas = _ref => {
6
8
  let {
7
9
  children,
8
- onTouch,
10
+ panGesture = Gesture.Pan(),
11
+ timeoutBeforeCollectingRefs = 100,
9
12
  ...props
10
13
  } = _ref;
11
- const touchableRefs = useValue({});
12
- const activeKey = useValue([]);
13
- const touchHandler = useMultiTouchHandler({
14
- onStart: event => {
15
- const keys = Object.keys(touchableRefs.current);
16
- for (let i = 0; i < keys.length; i++) {
17
- const key = keys[i];
18
- const touchableItem = touchableRefs.current[key];
19
- if (touchableItem !== null && touchableItem !== void 0 && touchableItem.isPointInPath(event)) {
20
- var _touchableItem$onStar;
21
- activeKey.current.push(`${key}__${event.id}`);
22
- (_touchableItem$onStar = touchableItem.onStart) === null || _touchableItem$onStar === void 0 ? void 0 : _touchableItem$onStar.call(touchableItem, event);
23
- return;
24
- }
25
- }
26
- },
27
- onActive: event => {
28
- var _activatedKey$split, _touchableItem$onActi;
29
- const activatedKey = activeKey.current.find(key => key.includes(event.id.toString()));
30
- if (!activatedKey) {
31
- return;
32
- }
33
- const indexedKey = (_activatedKey$split = activatedKey.split('__')) === null || _activatedKey$split === void 0 ? void 0 : _activatedKey$split[0];
34
- if (!indexedKey) {
35
- return;
36
- }
37
- const touchableItem = touchableRefs.current[indexedKey];
38
- return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onActi = touchableItem.onActive) === null || _touchableItem$onActi === void 0 ? void 0 : _touchableItem$onActi.call(touchableItem, event);
39
- },
40
- onEnd: event => {
41
- var _activatedKey$split2, _touchableItem$onEnd;
42
- const activatedKey = activeKey.current.find(key => key.includes(event.id.toString()));
43
- if (!activatedKey) {
44
- return;
45
- }
46
- const indexedKey = (_activatedKey$split2 = activatedKey.split('__')) === null || _activatedKey$split2 === void 0 ? void 0 : _activatedKey$split2[0];
47
- if (!indexedKey) {
48
- return;
14
+ // Instead of value, provide a subscribe method and reload the refs
15
+ const touchableRefs = useMemo(() => {
16
+ return {
17
+ value: {}
18
+ };
19
+ }, []);
20
+ const activeKey = useSharedValue([]);
21
+
22
+ // This must be improved, it's a hack to wait for the refs to be loaded
23
+ const [loadedRefs, prepareLoadedRefs] = useState({});
24
+ const ref = useRef();
25
+ useEffect(() => {
26
+ ref.current = setTimeout(() => {
27
+ prepareLoadedRefs(touchableRefs.value);
28
+ }, timeoutBeforeCollectingRefs);
29
+ return () => {
30
+ clearTimeout(ref.current);
31
+ };
32
+ // eslint-disable-next-line react-hooks/exhaustive-deps
33
+ }, [timeoutBeforeCollectingRefs]);
34
+ const mainGesture = panGesture.onBegin(event => {
35
+ const keys = Object.keys(loadedRefs);
36
+ for (let i = 0; i < keys.length; i++) {
37
+ const key = keys[i];
38
+ const touchableItem = loadedRefs[key];
39
+ const isPointInPath = touchableItem === null || touchableItem === void 0 ? void 0 : touchableItem.isPointInPath(event);
40
+ if (isPointInPath && touchableItem !== null && touchableItem !== void 0 && touchableItem.onStart) {
41
+ var _touchableItem$onStar;
42
+ activeKey.value.push(`${key}__${event.handlerTag}`);
43
+ (_touchableItem$onStar = touchableItem.onStart) === null || _touchableItem$onStar === void 0 ? void 0 : _touchableItem$onStar.call(touchableItem, event);
49
44
  }
50
- const touchableItem = touchableRefs.current[indexedKey];
51
- activeKey.current = activeKey.current.filter(key => !key.includes(event.id.toString()));
52
- return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onEnd = touchableItem.onEnd) === null || _touchableItem$onEnd === void 0 ? void 0 : _touchableItem$onEnd.call(touchableItem, event);
53
45
  }
54
- }, [touchableRefs, activeKey]);
46
+ }).onUpdate(event => {
47
+ var _activatedKey$split, _touchableItem$onActi;
48
+ const activatedKey = activeKey.value.find(key => key.includes(event.handlerTag.toString()));
49
+ if (!activatedKey) {
50
+ return;
51
+ }
52
+ const indexedKey = (_activatedKey$split = activatedKey.split('__')) === null || _activatedKey$split === void 0 ? void 0 : _activatedKey$split[0];
53
+ if (!indexedKey) {
54
+ return;
55
+ }
56
+ const touchableItem = loadedRefs[indexedKey];
57
+ return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onActi = touchableItem.onActive) === null || _touchableItem$onActi === void 0 ? void 0 : _touchableItem$onActi.call(touchableItem, event);
58
+ }).onFinalize(event => {
59
+ var _activatedKey$split2, _touchableItem$onEnd;
60
+ const activatedKey = activeKey.value.find(key => key.includes(event.handlerTag.toString()));
61
+ if (!activatedKey) {
62
+ return;
63
+ }
64
+ const indexedKey = (_activatedKey$split2 = activatedKey.split('__')) === null || _activatedKey$split2 === void 0 ? void 0 : _activatedKey$split2[0];
65
+ if (!indexedKey) {
66
+ return;
67
+ }
68
+ const touchableItem = loadedRefs[indexedKey];
69
+ activeKey.value = activeKey.value.filter(key => !key.includes(event.handlerTag.toString()));
70
+ return touchableItem === null || touchableItem === void 0 ? void 0 : (_touchableItem$onEnd = touchableItem.onEnd) === null || _touchableItem$onEnd === void 0 ? void 0 : _touchableItem$onEnd.call(touchableItem, event);
71
+ });
55
72
  useEffect(() => {
56
73
  return () => {
57
- touchableRefs.current = {};
74
+ touchableRefs.value = {};
58
75
  };
59
76
  }, [touchableRefs]);
60
- return /*#__PURE__*/React.createElement(SkiaCanvas, _extends({
61
- ref: ref
62
- }, props, {
63
- onTouch: touchInfo => {
64
- touchHandler(touchInfo);
65
- return onTouch === null || onTouch === void 0 ? void 0 : onTouch(touchInfo);
66
- }
67
- }), /*#__PURE__*/React.createElement(TouchHandlerContext.Provider, {
77
+ return /*#__PURE__*/React.createElement(GestureDetector, {
78
+ gesture: mainGesture
79
+ }, /*#__PURE__*/React.createElement(AnimatedSkiaCanvas, props, /*#__PURE__*/React.createElement(TouchHandlerContext.Provider, {
68
80
  value: touchableRefs
69
- }, children));
70
- });
81
+ }, children)));
82
+ };
71
83
  export { Canvas };
72
84
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
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
+ {"version":3,"names":["Canvas","SkiaCanvas","React","useEffect","useMemo","useRef","useState","Gesture","GestureDetector","Animated","useSharedValue","TouchHandlerContext","AnimatedSkiaCanvas","createAnimatedComponent","children","panGesture","Pan","timeoutBeforeCollectingRefs","props","touchableRefs","value","activeKey","loadedRefs","prepareLoadedRefs","ref","current","setTimeout","clearTimeout","mainGesture","onBegin","event","keys","Object","i","length","key","touchableItem","isPointInPath","onStart","push","handlerTag","onUpdate","activatedKey","find","includes","toString","indexedKey","split","onActive","onFinalize","filter","onEnd"],"sourceRoot":"../../src","sources":["canvas.tsx"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React, { useContext } from 'react';
2
2
  const TouchHandlerContext = /*#__PURE__*/React.createContext({
3
- current: {}
3
+ value: {}
4
4
  });
5
5
  const useTouchHandlerContext = () => {
6
6
  return useContext(TouchHandlerContext);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","TouchHandlerContext","createContext","current","useTouchHandlerContext"],"sourceRoot":"../../src","sources":["context.tsx"],"mappings":"AAKA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAazC,MAAMC,mBAAmB,gBAAGF,KAAK,CAACG,aAAa,CAA8B;EAC3EC,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAMC,sBAAsB,GAAG,MAAM;EACnC,OAAOJ,UAAU,CAACC,mBAAmB,CAAC;AACxC,CAAC;AAED,SAASA,mBAAmB,EAAEG,sBAAsB"}
1
+ {"version":3,"names":["React","useContext","TouchHandlerContext","createContext","value","useTouchHandlerContext"],"sourceRoot":"../../src","sources":["context.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AA2BzC,MAAMC,mBAAmB,gBAAGF,KAAK,CAACG,aAAa,CAA8B;EAC3EC,KAAK,EAAE,CAAC;AACV,CAAC,CAAC;AAEF,MAAMC,sBAAsB,GAAG,MAAM;EACnC,OAAOJ,UAAU,CAACC,mBAAmB,CAAC;AACxC,CAAC;AAED,SAASA,mBAAmB,EAAEG,sBAAsB"}
@@ -1,8 +1,8 @@
1
1
  import { Circle as SkiaCircle, RoundedRect as SkiaRoundedRect, Rect as SkiaRect, Path as SkiaPath } from '@shopify/react-native-skia';
2
2
  import { withTouchableHandler } from '../hoc';
3
3
  export { Canvas } from '../canvas';
4
- export const Circle = withTouchableHandler(SkiaCircle);
5
- export const RoundedRect = withTouchableHandler(SkiaRoundedRect);
6
- export const Rect = withTouchableHandler(SkiaRect);
7
- export const Path = withTouchableHandler(SkiaPath);
4
+ export const Circle = withTouchableHandler(SkiaCircle, 'Circle');
5
+ export const RoundedRect = withTouchableHandler(SkiaRoundedRect, 'RoundedRect');
6
+ export const Rect = withTouchableHandler(SkiaRect, 'Rect');
7
+ export const Path = withTouchableHandler(SkiaPath, 'Path');
8
8
  //# sourceMappingURL=index.js.map
@@ -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;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
+ {"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;AAEnC,SAASC,oBAAoB,QAAQ,QAAQ;AAE7C,SAASC,MAAM,QAAQ,WAAW;AAElC,OAAO,MAAMT,MAAM,GAAGQ,oBAAoB,CAACP,UAAU,EAAE,QAAQ,CAAC;AAChE,OAAO,MAAMC,WAAW,GAAGM,oBAAoB,CAACL,eAAe,EAAE,aAAa,CAAC;AAC/E,OAAO,MAAMC,IAAI,GAAGI,oBAAoB,CAACH,QAAQ,EAAE,MAAM,CAAC;AAC1D,OAAO,MAAMC,IAAI,GAAGE,oBAAoB,CAACD,QAAQ,EAAE,MAAM,CAAC"}
@@ -1,10 +1,11 @@
1
- import { useValue } from '@shopify/react-native-skia';
2
1
  import { useCallback, useEffect, useId } from 'react';
2
+ import { useTouchHandlerContext } from '../canvas/context';
3
3
  import { getCirclePath } from '../utils/get-circle-path';
4
4
  import { getRectPath, getRoundedRectPath } from '../utils/get-rect-path';
5
5
  import { unwrapAnimatedValue, unwrapAnimatedValueObject } from '../utils/unwrap-animated-value';
6
- import { useTouchHandlerContext } from '../canvas/context';
7
- const getSkiaPath = (key, props) => {
6
+ export const getSkiaPath = (key, props) => {
7
+ 'worklet';
8
+
8
9
  const unwrappedProps = unwrapAnimatedValueObject(props);
9
10
  switch (key) {
10
11
  case 'Circle':
@@ -19,7 +20,7 @@ const getSkiaPath = (key, props) => {
19
20
  return null;
20
21
  }
21
22
  };
22
- const withTouchableHandler = Component => {
23
+ const withTouchableHandler = (Component, componentName) => {
23
24
  return _ref => {
24
25
  let {
25
26
  onStart: onStartProp,
@@ -30,59 +31,52 @@ const withTouchableHandler = Component => {
30
31
  } = _ref;
31
32
  const id = useId();
32
33
  const ref = useTouchHandlerContext();
33
- const startingPoint = useValue(null);
34
34
  const onStart = useCallback(event => {
35
- startingPoint.current = {
36
- x: event.x,
37
- y: event.y
38
- };
35
+ 'worklet';
36
+
39
37
  return onStartProp === null || onStartProp === void 0 ? void 0 : onStartProp(event);
40
- }, [onStartProp, startingPoint]);
38
+ }, [onStartProp]);
41
39
  const onActive = useCallback(event => {
42
- var _startingPoint$curren, _startingPoint$curren2;
43
- const translationX = event.x - (((_startingPoint$curren = startingPoint.current) === null || _startingPoint$curren === void 0 ? void 0 : _startingPoint$curren.x) ?? 0);
44
- const translationY = event.y - (((_startingPoint$curren2 = startingPoint.current) === null || _startingPoint$curren2 === void 0 ? void 0 : _startingPoint$curren2.y) ?? 0);
45
- return onActiveProp === null || onActiveProp === void 0 ? void 0 : onActiveProp({
46
- ...event,
47
- translationX,
48
- translationY
49
- });
50
- }, [onActiveProp, startingPoint]);
40
+ 'worklet';
41
+
42
+ return onActiveProp === null || onActiveProp === void 0 ? void 0 : onActiveProp(event);
43
+ }, [onActiveProp]);
51
44
  const onEnd = useCallback(event => {
52
- var _startingPoint$curren3, _startingPoint$curren4;
53
- const translationX = event.x - (((_startingPoint$curren3 = startingPoint.current) === null || _startingPoint$curren3 === void 0 ? void 0 : _startingPoint$curren3.x) ?? 0);
54
- const translationY = event.y - (((_startingPoint$curren4 = startingPoint.current) === null || _startingPoint$curren4 === void 0 ? void 0 : _startingPoint$curren4.y) ?? 0);
55
- return onEndProp === null || onEndProp === void 0 ? void 0 : onEndProp({
56
- ...event,
57
- translationX,
58
- translationY
59
- });
60
- }, [onEndProp, startingPoint]);
45
+ 'worklet';
46
+
47
+ return onEndProp === null || onEndProp === void 0 ? void 0 : onEndProp(event);
48
+ }, [onEndProp]);
61
49
  const isPointInPath = useCallback(point => {
50
+ 'worklet';
51
+
62
52
  if (touchablePath) {
63
53
  return unwrapAnimatedValue(touchablePath).contains(point.x, point.y);
64
54
  }
65
- const path = getSkiaPath(Component.name, props);
55
+ if (!componentName) return false;
56
+ const path = getSkiaPath(componentName, props);
66
57
  if (!path) {
67
58
  throw Error('No touchablePath provided');
68
59
  }
69
60
  return path.contains(point.x, point.y);
70
61
  }, [props, touchablePath]);
71
62
  useEffect(() => {
72
- ref.current = {
63
+ ref.value = {
73
64
  [`id:${id}`]: {
74
65
  isPointInPath,
75
66
  onStart,
76
67
  onActive,
77
68
  onEnd
78
69
  },
79
- ...ref.current
70
+ ...ref.value
80
71
  };
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, [id, isPointInPath, onActive, onEnd, onStart]);
74
+ useEffect(() => {
81
75
  return () => {
82
- var _ref$current;
83
- (_ref$current = ref.current) === null || _ref$current === void 0 ? true : delete _ref$current[id];
76
+ var _ref$value;
77
+ (_ref$value = ref.value) === null || _ref$value === void 0 ? true : delete _ref$value[`id:${id}`];
84
78
  };
85
- }, [id, isPointInPath, onActive, onEnd, onStart, ref, touchablePath]);
79
+ }, [id, props, ref, touchablePath]);
86
80
  return Component(props);
87
81
  };
88
82
  };
@@ -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":"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"}
1
+ {"version":3,"names":["useCallback","useEffect","useId","useTouchHandlerContext","getCirclePath","getRectPath","getRoundedRectPath","unwrapAnimatedValue","unwrapAnimatedValueObject","getSkiaPath","key","props","unwrappedProps","path","withTouchableHandler","Component","componentName","onStart","onStartProp","onActive","onActiveProp","onEnd","onEndProp","touchablePath","id","ref","event","isPointInPath","point","contains","x","y","Error","value"],"sourceRoot":"../../src","sources":["with-touchable-handler.tsx"],"mappings":"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"}
@@ -1,23 +1,29 @@
1
- import { useValue } from '@shopify/react-native-skia';
2
1
  import { useCallback } from 'react';
2
+ import { useSharedValue } from 'react-native-reanimated';
3
3
  const useGestureHandler = gestureHandlers => {
4
4
  const {
5
5
  onStart,
6
6
  onActive,
7
7
  onEnd
8
8
  } = gestureHandlers;
9
- const context = useValue({});
9
+ const context = useSharedValue({});
10
10
  const handleStart = useCallback(touchInfo => {
11
+ 'worklet';
12
+
11
13
  if (!onStart) return;
12
- return onStart(touchInfo, context.current);
14
+ return onStart(touchInfo, context.value);
13
15
  }, [context, onStart]);
14
16
  const handleActive = useCallback(extendedTouchInfo => {
17
+ 'worklet';
18
+
15
19
  if (!onActive) return;
16
- return onActive(extendedTouchInfo, context.current);
20
+ return onActive(extendedTouchInfo, context.value);
17
21
  }, [context, onActive]);
18
22
  const handleEnd = useCallback(extendedTouchInfo => {
23
+ 'worklet';
24
+
19
25
  if (!onEnd) return;
20
- return onEnd(extendedTouchInfo, context.current);
26
+ return onEnd(extendedTouchInfo, context.value);
21
27
  }, [context, onEnd]);
22
28
  return {
23
29
  onStart: handleStart,
@@ -1 +1 @@
1
- {"version":3,"names":["useValue","useCallback","useGestureHandler","gestureHandlers","onStart","onActive","onEnd","context","handleStart","touchInfo","current","handleActive","extendedTouchInfo","handleEnd"],"sourceRoot":"../../src","sources":["use-gesture-handler.ts"],"mappings":"AAAA,SAGEA,QAAQ,QACH,4BAA4B;AACnC,SAASC,WAAW,QAAQ,OAAO;AAenC,MAAMC,iBAAiB,GACrBC,eAAqD,IAClD;EACH,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,eAAe;EAEpD,MAAMI,OAAO,GAAGP,QAAQ,CAAc,CAAC,CAAC,CAAQ;EAEhD,MAAMQ,WAAW,GAAGP,WAAW,CAC5BQ,SAAoB,IAAK;IACxB,IAAI,CAACL,OAAO,EAAE;IACd,OAAOA,OAAO,CAACK,SAAS,EAAEF,OAAO,CAACG,OAAO,CAAC;EAC5C,CAAC,EACD,CAACH,OAAO,EAAEH,OAAO,CAAC,CACnB;EAED,MAAMO,YAAY,GAAGV,WAAW,CAC7BW,iBAAsD,IAAK;IAC1D,IAAI,CAACP,QAAQ,EAAE;IACf,OAAOA,QAAQ,CAACO,iBAAiB,EAAEL,OAAO,CAACG,OAAO,CAAC;EACrD,CAAC,EACD,CAACH,OAAO,EAAEF,QAAQ,CAAC,CACpB;EAED,MAAMQ,SAAS,GAAGZ,WAAW,CAC1BW,iBAAsD,IAAK;IAC1D,IAAI,CAACN,KAAK,EAAE;IACZ,OAAOA,KAAK,CAACM,iBAAiB,EAAEL,OAAO,CAACG,OAAO,CAAC;EAClD,CAAC,EACD,CAACH,OAAO,EAAED,KAAK,CAAC,CACjB;EAED,OAAO;IACLF,OAAO,EAAEI,WAAW;IACpBH,QAAQ,EAAEM,YAAY;IACtBL,KAAK,EAAEO;EACT,CAAC;AACH,CAAC;AAED,SAASX,iBAAiB"}
1
+ {"version":3,"names":["useCallback","useSharedValue","useGestureHandler","gestureHandlers","onStart","onActive","onEnd","context","handleStart","touchInfo","value","handleActive","extendedTouchInfo","handleEnd"],"sourceRoot":"../../src","sources":["use-gesture-handler.ts"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,cAAc,QAAQ,yBAAyB;AAuBxD,MAAMC,iBAAiB,GACrBC,eAAqD,IAClD;EACH,MAAM;IAAEC,OAAO;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,eAAe;EAEpD,MAAMI,OAAO,GAAGN,cAAc,CAAc,CAAC,CAAC,CAAQ;EAEtD,MAAMO,WAAW,GAAGR,WAAW,CAC5BS,SAAiE,IAAK;IACrE,SAAS;;IACT,IAAI,CAACL,OAAO,EAAE;IACd,OAAOA,OAAO,CAACK,SAAS,EAAEF,OAAO,CAACG,KAAK,CAAC;EAC1C,CAAC,EACD,CAACH,OAAO,EAAEH,OAAO,CAAC,CACnB;EAED,MAAMO,YAAY,GAAGX,WAAW,CAC7BY,iBAAoE,IAAK;IACxE,SAAS;;IACT,IAAI,CAACP,QAAQ,EAAE;IACf,OAAOA,QAAQ,CAACO,iBAAiB,EAAEL,OAAO,CAACG,KAAK,CAAC;EACnD,CAAC,EACD,CAACH,OAAO,EAAEF,QAAQ,CAAC,CACpB;EAED,MAAMQ,SAAS,GAAGb,WAAW,CAEzBY,iBAAyE,IACtE;IACH,SAAS;;IACT,IAAI,CAACN,KAAK,EAAE;IACZ,OAAOA,KAAK,CAACM,iBAAiB,EAAEL,OAAO,CAACG,KAAK,CAAC;EAChD,CAAC,EACD,CAACH,OAAO,EAAED,KAAK,CAAC,CACjB;EAED,OAAO;IACLF,OAAO,EAAEI,WAAW;IACpBH,QAAQ,EAAEM,YAAY;IACtBL,KAAK,EAAEO;EACT,CAAC;AACH,CAAC;AAED,SAASX,iBAAiB"}
@@ -1,5 +1,5 @@
1
+ import * as Touchable from './components';
1
2
  export * from './hoc';
2
3
  export * from './hooks/use-gesture-handler';
3
- import * as Touchable from './components';
4
4
  export default Touchable;
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Touchable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,cAAc,OAAO;AACrB,cAAc,6BAA6B;AAC3C,OAAO,KAAKA,SAAS,MAAM,cAAc;AAEzC,eAAeA,SAAS"}
1
+ {"version":3,"names":["Touchable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,cAAc;AACzC,cAAc,OAAO;AACrB,cAAc,6BAA6B;AAE3C,eAAeA,SAAS"}
@@ -1,5 +1,7 @@
1
1
  import { Skia } from '@shopify/react-native-skia';
2
2
  export const getCirclePath = _ref => {
3
+ 'worklet';
4
+
3
5
  let {
4
6
  cx,
5
7
  cy,
@@ -1 +1 @@
1
- {"version":3,"names":["Skia","getCirclePath","cx","cy","r","Path","Make","addCircle"],"sourceRoot":"../../src","sources":["get-circle-path.ts"],"mappings":"AAAA,SAASA,IAAI,QAAQ,4BAA4B;AAIjD,OAAO,MAAMC,aAAa,GAAG,QAAwC;EAAA,IAAvC;IAAEC,EAAE;IAAEC,EAAE;IAAEC;EAAuB,CAAC;EAC9D,OAAOJ,IAAI,CAACK,IAAI,CAACC,IAAI,EAAE,CAACC,SAAS,CAACL,EAAE,EAAEC,EAAE,EAAEC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"names":["Skia","getCirclePath","cx","cy","r","Path","Make","addCircle"],"sourceRoot":"../../src","sources":["get-circle-path.ts"],"mappings":"AAAA,SAASA,IAAI,QAAQ,4BAA4B;AAIjD,OAAO,MAAMC,aAAa,GAAG,QAAwC;EACnE,SAAS;;EAAC,IADkB;IAAEC,EAAE;IAAEC,EAAE;IAAEC;EAAuB,CAAC;EAE9D,OAAOJ,IAAI,CAACK,IAAI,CAACC,IAAI,EAAE,CAACC,SAAS,CAACL,EAAE,EAAEC,EAAE,EAAEC,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,8 +1,9 @@
1
- import { rect, rrect, Skia } from '@shopify/react-native-skia';
1
+ import { Skia } from '@shopify/react-native-skia';
2
2
  const getRectPath = params => {
3
+ 'worklet';
4
+
3
5
  const skPath = Skia.Path.Make();
4
6
  if ('rect' in params) {
5
- // eslint-disable-next-line @typescript-eslint/no-shadow
6
7
  const {
7
8
  rect
8
9
  } = params;
@@ -15,20 +16,21 @@ const getRectPath = params => {
15
16
  width,
16
17
  height
17
18
  } = params;
18
- skPath.addRect(rect(x, y, width, height));
19
+ skPath.addRect(Skia.XYWHRect(x, y, width, height));
19
20
  return skPath;
20
21
  };
21
22
  const getRoundedRectPath = params => {
23
+ 'worklet';
24
+
22
25
  const {
23
26
  r
24
27
  } = params;
25
28
  const skPath = Skia.Path.Make();
26
29
  if ('rect' in params) {
27
- // eslint-disable-next-line @typescript-eslint/no-shadow
28
30
  const {
29
31
  rect
30
32
  } = params;
31
- skPath.addRRect(rrect(rect, r, r));
33
+ skPath.addRRect(Skia.RRectXY(rect, r, r));
32
34
  return skPath;
33
35
  }
34
36
  const {
@@ -37,7 +39,8 @@ const getRoundedRectPath = params => {
37
39
  width,
38
40
  height
39
41
  } = params;
40
- skPath.addRRect(rrect(rect(x, y, width, height), r, r));
42
+ const roundedRect = Skia.RRectXY(Skia.XYWHRect(x, y, width, height), r, r);
43
+ skPath.addRRect(roundedRect);
41
44
  return skPath;
42
45
  };
43
46
  export { getRectPath, getRoundedRectPath };
@@ -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,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"}
1
+ {"version":3,"names":["Skia","getRectPath","params","skPath","Path","Make","rect","addRect","x","y","width","height","XYWHRect","getRoundedRectPath","r","addRRect","RRectXY","roundedRect"],"sourceRoot":"../../src","sources":["get-rect-path.ts"],"mappings":"AAAA,SAASA,IAAI,QAAqB,4BAA4B;AAW9D,MAAMC,WAAW,GAAIC,MAAyB,IAAK;EACjD,SAAS;;EAET,MAAMC,MAAM,GAAGH,IAAI,CAACI,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIH,MAAM,EAAE;IACpB,MAAM;MAAEI;IAAK,CAAC,GAAGJ,MAAM;IAEvBC,MAAM,CAACI,OAAO,CAACD,IAAI,CAAC;IACpB,OAAOH,MAAM;EACf;EACA,MAAM;IAAEK,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGT,MAAM;EAEtCC,MAAM,CAACI,OAAO,CAACP,IAAI,CAACY,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,CAAC;EAClD,OAAOR,MAAM;AACf,CAAC;AAMD,MAAMU,kBAAkB,GAAIX,MAAgC,IAAK;EAC/D,SAAS;;EAET,MAAM;IAAEY;EAAE,CAAC,GAAGZ,MAAM;EACpB,MAAMC,MAAM,GAAGH,IAAI,CAACI,IAAI,CAACC,IAAI,EAAE;EAC/B,IAAI,MAAM,IAAIH,MAAM,EAAE;IACpB,MAAM;MAAEI;IAAK,CAAC,GAAGJ,MAAM;IAEvBC,MAAM,CAACY,QAAQ,CAACf,IAAI,CAACgB,OAAO,CAACV,IAAI,EAAEQ,CAAC,EAAEA,CAAC,CAAC,CAAC;IACzC,OAAOX,MAAM;EACf;EACA,MAAM;IAAEK,CAAC;IAAEC,CAAC;IAAEC,KAAK;IAAEC;EAAO,CAAC,GAAGT,MAAM;EAEtC,MAAMe,WAAW,GAAGjB,IAAI,CAACgB,OAAO,CAAChB,IAAI,CAACY,QAAQ,CAACJ,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,CAAC,EAAEG,CAAC,EAAEA,CAAC,CAAC;EAC1EX,MAAM,CAACY,QAAQ,CAACE,WAAW,CAAC;EAC5B,OAAOd,MAAM;AACf,CAAC;AAED,SAASF,WAAW,EAAEY,kBAAkB"}
@@ -1,4 +1,9 @@
1
1
  const unwrapAnimatedValue = value => {
2
+ 'worklet';
3
+
4
+ if (value.value != null) {
5
+ return value.value;
6
+ }
2
7
  if (value.current != null) {
3
8
  return value.current;
4
9
  }
@@ -9,6 +14,8 @@ const unwrapAnimatedValue = value => {
9
14
  return value;
10
15
  };
11
16
  const unwrapAnimatedValueObject = value => {
17
+ 'worklet';
18
+
12
19
  return Object.keys(value).reduce((acc, key) => {
13
20
  return {
14
21
  ...acc,
@@ -1 +1 @@
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
+ {"version":3,"names":["unwrapAnimatedValue","value","current","selector","skiaValueWithSelector","unwrapAnimatedValueObject","Object","keys","reduce","acc","key"],"sourceRoot":"../../src","sources":["unwrap-animated-value.ts"],"mappings":"AAOA,MAAMA,mBAAmB,GACvBC,KAA4E,IACtE;EACN,SAAS;;EAET,IAAKA,KAAK,CAA6BA,KAAK,IAAI,IAAI,EAAE;IACpD,OAAQA,KAAK,CAA6BA,KAAK;EACjD;EAEA,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,SAAS;;EACT,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,10 @@
1
- import { type CanvasProps, SkiaDomView } from '@shopify/react-native-skia';
2
1
  import React from '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>>;
2
+ import { PanGesture } from 'react-native-gesture-handler';
3
+ import type { CanvasProps } from '@shopify/react-native-skia';
4
+ type TouchableCanvasProps = CanvasProps & {
5
+ panGesture?: PanGesture;
6
+ timeoutBeforeCollectingRefs?: number;
7
+ };
8
+ declare const Canvas: React.FC<TouchableCanvasProps>;
4
9
  export { Canvas };
5
10
  //# 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,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"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/canvas/canvas.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,EAGL,UAAU,EACX,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,KAAK,oBAAoB,GAAG,WAAW,GAAG;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAIF,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA8F1C,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}