react-native-reanimated-carousel 4.0.0-alpha.7 → 4.0.0-alpha.9

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 (56) hide show
  1. package/README.md +2 -3
  2. package/lib/commonjs/components/BaseLayout.js +2 -20
  3. package/lib/commonjs/components/BaseLayout.js.map +1 -1
  4. package/lib/commonjs/components/Carousel.js +21 -45
  5. package/lib/commonjs/components/Carousel.js.map +1 -1
  6. package/lib/commonjs/components/ItemRenderer.js +80 -0
  7. package/lib/commonjs/components/ItemRenderer.js.map +1 -0
  8. package/lib/commonjs/components/ScrollViewGesture.js +5 -5
  9. package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
  10. package/lib/commonjs/hooks/useCarouselController.js +9 -9
  11. package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
  12. package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -1
  13. package/lib/commonjs/hooks/usePanGestureProxy.js +12 -12
  14. package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -1
  15. package/lib/commonjs/hooks/usePanGestureProxy.test.js +8 -8
  16. package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -1
  17. package/lib/commonjs/hooks/useVisibleRanges.js +33 -16
  18. package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/module/components/BaseLayout.js +3 -15
  21. package/lib/module/components/BaseLayout.js.map +1 -1
  22. package/lib/module/components/Carousel.js +21 -42
  23. package/lib/module/components/Carousel.js.map +1 -1
  24. package/lib/module/components/ItemRenderer.js +62 -0
  25. package/lib/module/components/ItemRenderer.js.map +1 -0
  26. package/lib/module/components/ScrollViewGesture.js +5 -5
  27. package/lib/module/components/ScrollViewGesture.js.map +1 -1
  28. package/lib/module/hooks/useCarouselController.js +9 -9
  29. package/lib/module/hooks/useCarouselController.js.map +1 -1
  30. package/lib/module/hooks/useOffsetX.test.js.map +1 -1
  31. package/lib/module/hooks/usePanGestureProxy.js +12 -12
  32. package/lib/module/hooks/usePanGestureProxy.js.map +1 -1
  33. package/lib/module/hooks/usePanGestureProxy.test.js +8 -8
  34. package/lib/module/hooks/usePanGestureProxy.test.js.map +1 -1
  35. package/lib/module/hooks/useVisibleRanges.js +32 -16
  36. package/lib/module/hooks/useVisibleRanges.js.map +1 -1
  37. package/lib/module/index.js.map +1 -1
  38. package/lib/typescript/components/ItemRenderer.d.ts +22 -0
  39. package/lib/typescript/components/ScrollViewGesture.d.ts +1 -1
  40. package/lib/typescript/hooks/useCarouselController.d.ts +1 -1
  41. package/lib/typescript/hooks/usePanGestureProxy.d.ts +1 -1
  42. package/lib/typescript/hooks/useVisibleRanges.d.ts +7 -4
  43. package/lib/typescript/index.d.ts +1 -0
  44. package/lib/typescript/types.d.ts +2 -2
  45. package/package.json +1 -1
  46. package/src/components/BaseLayout.tsx +3 -33
  47. package/src/components/Carousel.tsx +21 -58
  48. package/src/components/ItemRenderer.tsx +105 -0
  49. package/src/components/ScrollViewGesture.tsx +6 -6
  50. package/src/hooks/useCarouselController.tsx +9 -9
  51. package/src/hooks/useOffsetX.test.ts +1 -1
  52. package/src/hooks/usePanGestureProxy.test.tsx +6 -7
  53. package/src/hooks/usePanGestureProxy.ts +15 -15
  54. package/src/hooks/useVisibleRanges.tsx +54 -22
  55. package/src/index.tsx +2 -0
  56. package/src/types.ts +2 -2
@@ -4,7 +4,7 @@ import { useUpdateGestureConfig } from "./useUpdateGestureConfig";
4
4
  export const usePanGestureProxy = customization => {
5
5
  const {
6
6
  onConfigurePanGesture,
7
- onGestureBegin,
7
+ onGestureStart,
8
8
  onGestureUpdate,
9
9
  onGestureEnd,
10
10
  options = {}
@@ -13,20 +13,20 @@ export const usePanGestureProxy = customization => {
13
13
  const gesture = Gesture.Pan(); // Save the original gesture callbacks
14
14
 
15
15
  const originalGestures = {
16
- onBegin: gesture.onBegin,
16
+ onStart: gesture.onStart,
17
17
  onUpdate: gesture.onUpdate,
18
18
  onEnd: gesture.onEnd
19
19
  }; // Save the user defined gesture callbacks
20
20
 
21
21
  const userDefinedConflictGestures = {
22
- onBegin: undefined,
22
+ onStart: undefined,
23
23
  onUpdate: undefined,
24
24
  onEnd: undefined
25
25
  };
26
26
 
27
- const fakeOnBegin = cb => {
28
- // Using fakeOnBegin to save the user defined callback
29
- userDefinedConflictGestures.onBegin = cb;
27
+ const fakeOnStart = cb => {
28
+ // Using fakeOnStart to save the user defined callback
29
+ userDefinedConflictGestures.onStart = cb;
30
30
  return gesture;
31
31
  };
32
32
 
@@ -43,19 +43,19 @@ export const usePanGestureProxy = customization => {
43
43
  }; // Setup the fake callbacks
44
44
 
45
45
 
46
- gesture.onBegin = fakeOnBegin;
46
+ gesture.onStart = fakeOnStart;
47
47
  gesture.onUpdate = fakeOnUpdate;
48
48
  gesture.onEnd = fakeOnEnd;
49
49
  if (onConfigurePanGesture) // Get the gesture with the user defined configuration
50
50
  onConfigurePanGesture(gesture); // Restore the original callbacks
51
51
 
52
- gesture.onBegin = originalGestures.onBegin;
52
+ gesture.onStart = originalGestures.onStart;
53
53
  gesture.onUpdate = originalGestures.onUpdate;
54
54
  gesture.onEnd = originalGestures.onEnd; // Setup the original callbacks with the user defined callbacks
55
55
 
56
- gesture.onBegin(e => {
57
- onGestureBegin(e);
58
- if (userDefinedConflictGestures.onBegin) userDefinedConflictGestures.onBegin(e);
56
+ gesture.onStart(e => {
57
+ onGestureStart(e);
58
+ if (userDefinedConflictGestures.onStart) userDefinedConflictGestures.onStart(e);
59
59
  }).onUpdate(e => {
60
60
  onGestureUpdate(e);
61
61
  if (userDefinedConflictGestures.onUpdate) userDefinedConflictGestures.onUpdate(e);
@@ -64,7 +64,7 @@ export const usePanGestureProxy = customization => {
64
64
  if (userDefinedConflictGestures.onEnd) userDefinedConflictGestures.onEnd(e, success);
65
65
  });
66
66
  return gesture;
67
- }, [onGestureBegin, onGestureUpdate, onGestureEnd, onConfigurePanGesture]);
67
+ }, [onGestureStart, onGestureUpdate, onGestureEnd, onConfigurePanGesture]);
68
68
  useUpdateGestureConfig(gesture, options);
69
69
  return gesture;
70
70
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["usePanGestureProxy.ts"],"names":["useMemo","Gesture","useUpdateGestureConfig","usePanGestureProxy","customization","onConfigurePanGesture","onGestureBegin","onGestureUpdate","onGestureEnd","options","gesture","Pan","originalGestures","onBegin","onUpdate","onEnd","userDefinedConflictGestures","undefined","fakeOnBegin","cb","fakeOnUpdate","fakeOnEnd","e","success"],"mappings":"AAAA,SAASA,OAAT,QAAwB,OAAxB;AAEA,SAASC,OAAT,QAAwB,8BAAxB;AAGA,SAASC,sBAAT,QAAuC,0BAAvC;AAEA,OAAO,MAAMC,kBAAkB,GAC7BC,aADgC,IAQ7B;AACH,QAAM;AACJC,IAAAA,qBADI;AAEJC,IAAAA,cAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,YAJI;AAKJC,IAAAA,OAAO,GAAG;AALN,MAMFL,aANJ;AAQA,QAAMM,OAAO,GAAGV,OAAO,CAAC,MAAM;AAC5B,UAAMU,OAAO,GAAGT,OAAO,CAACU,GAAR,EAAhB,CAD4B,CAG5B;;AACA,UAAMC,gBAAgB,GAAG;AACvBC,MAAAA,OAAO,EAAEH,OAAO,CAACG,OADM;AAEvBC,MAAAA,QAAQ,EAAEJ,OAAO,CAACI,QAFK;AAGvBC,MAAAA,KAAK,EAAEL,OAAO,CAACK;AAHQ,KAAzB,CAJ4B,CAU5B;;AACA,UAAMC,2BAIL,GAAG;AACFH,MAAAA,OAAO,EAAEI,SADP;AAEFH,MAAAA,QAAQ,EAAEG,SAFR;AAGFF,MAAAA,KAAK,EAAEE;AAHL,KAJJ;;AAUA,UAAMC,WAAmC,GAAIC,EAAD,IAAQ;AAClD;AACAH,MAAAA,2BAA2B,CAACH,OAA5B,GAAsCM,EAAtC;AACA,aAAOT,OAAP;AACD,KAJD;;AAMA,UAAMU,YAAqC,GAAID,EAAD,IAAQ;AACpD;AACAH,MAAAA,2BAA2B,CAACF,QAA5B,GAAuCK,EAAvC;AACA,aAAOT,OAAP;AACD,KAJD;;AAMA,UAAMW,SAA+B,GAAIF,EAAD,IAAQ;AAC9C;AACAH,MAAAA,2BAA2B,CAACD,KAA5B,GAAoCI,EAApC;AACA,aAAOT,OAAP;AACD,KAJD,CAjC4B,CAuC5B;;;AACAA,IAAAA,OAAO,CAACG,OAAR,GAAkBK,WAAlB;AACAR,IAAAA,OAAO,CAACI,QAAR,GAAmBM,YAAnB;AACAV,IAAAA,OAAO,CAACK,KAAR,GAAgBM,SAAhB;AAEA,QAAIhB,qBAAJ,EACE;AACAA,MAAAA,qBAAqB,CAACK,OAAD,CAArB,CA9C0B,CAgD5B;;AACAA,IAAAA,OAAO,CAACG,OAAR,GAAkBD,gBAAgB,CAACC,OAAnC;AACAH,IAAAA,OAAO,CAACI,QAAR,GAAmBF,gBAAgB,CAACE,QAApC;AACAJ,IAAAA,OAAO,CAACK,KAAR,GAAgBH,gBAAgB,CAACG,KAAjC,CAnD4B,CAqD5B;;AACAL,IAAAA,OAAO,CACJG,OADH,CACYS,CAAD,IAAO;AACdhB,MAAAA,cAAc,CAACgB,CAAD,CAAd;AAEA,UAAIN,2BAA2B,CAACH,OAAhC,EACEG,2BAA2B,CAACH,OAA5B,CAAoCS,CAApC;AACH,KANH,EAOGR,QAPH,CAOaQ,CAAD,IAAO;AACff,MAAAA,eAAe,CAACe,CAAD,CAAf;AAEA,UAAIN,2BAA2B,CAACF,QAAhC,EACEE,2BAA2B,CAACF,QAA5B,CAAqCQ,CAArC;AACH,KAZH,EAaGP,KAbH,CAaS,CAACO,CAAD,EAAIC,OAAJ,KAAgB;AACrBf,MAAAA,YAAY,CAACc,CAAD,EAAIC,OAAJ,CAAZ;AAEA,UAAIP,2BAA2B,CAACD,KAAhC,EACEC,2BAA2B,CAACD,KAA5B,CAAkCO,CAAlC,EAAqCC,OAArC;AACH,KAlBH;AAoBA,WAAOb,OAAP;AACD,GA3EsB,EA2EpB,CACDJ,cADC,EAEDC,eAFC,EAGDC,YAHC,EAIDH,qBAJC,CA3EoB,CAAvB;AAkFAH,EAAAA,sBAAsB,CAACQ,OAAD,EAAUD,OAAV,CAAtB;AAEA,SAAOC,OAAP;AACD,CAtGM","sourcesContent":["import { useMemo } from \"react\";\nimport type { GestureStateChangeEvent, GestureUpdateEvent, PanGesture, PanGestureHandlerEventPayload } from \"react-native-gesture-handler\";\nimport { Gesture } from \"react-native-gesture-handler\";\n\nimport type { GestureConfig } from \"./useUpdateGestureConfig\";\nimport { useUpdateGestureConfig } from \"./useUpdateGestureConfig\";\n\nexport const usePanGestureProxy = (\n customization: {\n onConfigurePanGesture?: (gesture: PanGesture) => void\n onGestureBegin: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => void\n onGestureUpdate: (event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => void\n onGestureEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, success: boolean) => void\n options?: GestureConfig\n },\n) => {\n const {\n onConfigurePanGesture,\n onGestureBegin,\n onGestureUpdate,\n onGestureEnd,\n options = {},\n } = customization;\n\n const gesture = useMemo(() => {\n const gesture = Gesture.Pan();\n\n // Save the original gesture callbacks\n const originalGestures = {\n onBegin: gesture.onBegin,\n onUpdate: gesture.onUpdate,\n onEnd: gesture.onEnd,\n };\n\n // Save the user defined gesture callbacks\n const userDefinedConflictGestures: {\n onBegin?: Parameters<(typeof gesture)[\"onBegin\"]>[0]\n onUpdate?: Parameters<(typeof gesture)[\"onUpdate\"]>[0]\n onEnd?: Parameters<(typeof gesture)[\"onEnd\"]>[0]\n } = {\n onBegin: undefined,\n onUpdate: undefined,\n onEnd: undefined,\n };\n\n const fakeOnBegin: typeof gesture.onBegin = (cb) => {\n // Using fakeOnBegin to save the user defined callback\n userDefinedConflictGestures.onBegin = cb;\n return gesture;\n };\n\n const fakeOnUpdate: typeof gesture.onUpdate = (cb) => {\n // Using fakeOnUpdate to save the user defined callback\n userDefinedConflictGestures.onUpdate = cb;\n return gesture;\n };\n\n const fakeOnEnd: typeof gesture.onEnd = (cb) => {\n // Using fakeOnEnd to save the user defined callback\n userDefinedConflictGestures.onEnd = cb;\n return gesture;\n };\n\n // Setup the fake callbacks\n gesture.onBegin = fakeOnBegin;\n gesture.onUpdate = fakeOnUpdate;\n gesture.onEnd = fakeOnEnd;\n\n if (onConfigurePanGesture)\n // Get the gesture with the user defined configuration\n onConfigurePanGesture(gesture);\n\n // Restore the original callbacks\n gesture.onBegin = originalGestures.onBegin;\n gesture.onUpdate = originalGestures.onUpdate;\n gesture.onEnd = originalGestures.onEnd;\n\n // Setup the original callbacks with the user defined callbacks\n gesture\n .onBegin((e) => {\n onGestureBegin(e);\n\n if (userDefinedConflictGestures.onBegin)\n userDefinedConflictGestures.onBegin(e);\n })\n .onUpdate((e) => {\n onGestureUpdate(e);\n\n if (userDefinedConflictGestures.onUpdate)\n userDefinedConflictGestures.onUpdate(e);\n })\n .onEnd((e, success) => {\n onGestureEnd(e, success);\n\n if (userDefinedConflictGestures.onEnd)\n userDefinedConflictGestures.onEnd(e, success);\n });\n\n return gesture;\n }, [\n onGestureBegin,\n onGestureUpdate,\n onGestureEnd,\n onConfigurePanGesture,\n ]);\n\n useUpdateGestureConfig(gesture, options);\n\n return gesture;\n};\n"]}
1
+ {"version":3,"sources":["usePanGestureProxy.ts"],"names":["useMemo","Gesture","useUpdateGestureConfig","usePanGestureProxy","customization","onConfigurePanGesture","onGestureStart","onGestureUpdate","onGestureEnd","options","gesture","Pan","originalGestures","onStart","onUpdate","onEnd","userDefinedConflictGestures","undefined","fakeOnStart","cb","fakeOnUpdate","fakeOnEnd","e","success"],"mappings":"AAAA,SAASA,OAAT,QAAwB,OAAxB;AAEA,SAASC,OAAT,QAAwB,8BAAxB;AAGA,SAASC,sBAAT,QAAuC,0BAAvC;AAEA,OAAO,MAAMC,kBAAkB,GAC7BC,aADgC,IAQ7B;AACH,QAAM;AACJC,IAAAA,qBADI;AAEJC,IAAAA,cAFI;AAGJC,IAAAA,eAHI;AAIJC,IAAAA,YAJI;AAKJC,IAAAA,OAAO,GAAG;AALN,MAMFL,aANJ;AAQA,QAAMM,OAAO,GAAGV,OAAO,CAAC,MAAM;AAC5B,UAAMU,OAAO,GAAGT,OAAO,CAACU,GAAR,EAAhB,CAD4B,CAG5B;;AACA,UAAMC,gBAAgB,GAAG;AACvBC,MAAAA,OAAO,EAAEH,OAAO,CAACG,OADM;AAEvBC,MAAAA,QAAQ,EAAEJ,OAAO,CAACI,QAFK;AAGvBC,MAAAA,KAAK,EAAEL,OAAO,CAACK;AAHQ,KAAzB,CAJ4B,CAU5B;;AACA,UAAMC,2BAIL,GAAG;AACFH,MAAAA,OAAO,EAAEI,SADP;AAEFH,MAAAA,QAAQ,EAAEG,SAFR;AAGFF,MAAAA,KAAK,EAAEE;AAHL,KAJJ;;AAUA,UAAMC,WAAmC,GAAIC,EAAD,IAAQ;AAClD;AACAH,MAAAA,2BAA2B,CAACH,OAA5B,GAAsCM,EAAtC;AACA,aAAOT,OAAP;AACD,KAJD;;AAMA,UAAMU,YAAqC,GAAID,EAAD,IAAQ;AACpD;AACAH,MAAAA,2BAA2B,CAACF,QAA5B,GAAuCK,EAAvC;AACA,aAAOT,OAAP;AACD,KAJD;;AAMA,UAAMW,SAA+B,GAAIF,EAAD,IAAQ;AAC9C;AACAH,MAAAA,2BAA2B,CAACD,KAA5B,GAAoCI,EAApC;AACA,aAAOT,OAAP;AACD,KAJD,CAjC4B,CAuC5B;;;AACAA,IAAAA,OAAO,CAACG,OAAR,GAAkBK,WAAlB;AACAR,IAAAA,OAAO,CAACI,QAAR,GAAmBM,YAAnB;AACAV,IAAAA,OAAO,CAACK,KAAR,GAAgBM,SAAhB;AAEA,QAAIhB,qBAAJ,EACE;AACAA,MAAAA,qBAAqB,CAACK,OAAD,CAArB,CA9C0B,CAgD5B;;AACAA,IAAAA,OAAO,CAACG,OAAR,GAAkBD,gBAAgB,CAACC,OAAnC;AACAH,IAAAA,OAAO,CAACI,QAAR,GAAmBF,gBAAgB,CAACE,QAApC;AACAJ,IAAAA,OAAO,CAACK,KAAR,GAAgBH,gBAAgB,CAACG,KAAjC,CAnD4B,CAqD5B;;AACAL,IAAAA,OAAO,CACJG,OADH,CACYS,CAAD,IAAO;AACdhB,MAAAA,cAAc,CAACgB,CAAD,CAAd;AAEA,UAAIN,2BAA2B,CAACH,OAAhC,EACEG,2BAA2B,CAACH,OAA5B,CAAoCS,CAApC;AACH,KANH,EAOGR,QAPH,CAOaQ,CAAD,IAAO;AACff,MAAAA,eAAe,CAACe,CAAD,CAAf;AAEA,UAAIN,2BAA2B,CAACF,QAAhC,EACEE,2BAA2B,CAACF,QAA5B,CAAqCQ,CAArC;AACH,KAZH,EAaGP,KAbH,CAaS,CAACO,CAAD,EAAIC,OAAJ,KAAgB;AACrBf,MAAAA,YAAY,CAACc,CAAD,EAAIC,OAAJ,CAAZ;AAEA,UAAIP,2BAA2B,CAACD,KAAhC,EACEC,2BAA2B,CAACD,KAA5B,CAAkCO,CAAlC,EAAqCC,OAArC;AACH,KAlBH;AAoBA,WAAOb,OAAP;AACD,GA3EsB,EA2EpB,CACDJ,cADC,EAEDC,eAFC,EAGDC,YAHC,EAIDH,qBAJC,CA3EoB,CAAvB;AAkFAH,EAAAA,sBAAsB,CAACQ,OAAD,EAAUD,OAAV,CAAtB;AAEA,SAAOC,OAAP;AACD,CAtGM","sourcesContent":["import { useMemo } from \"react\";\nimport type { GestureStateChangeEvent, GestureUpdateEvent, PanGesture, PanGestureHandlerEventPayload } from \"react-native-gesture-handler\";\nimport { Gesture } from \"react-native-gesture-handler\";\n\nimport type { GestureConfig } from \"./useUpdateGestureConfig\";\nimport { useUpdateGestureConfig } from \"./useUpdateGestureConfig\";\n\nexport const usePanGestureProxy = (\n customization: {\n onConfigurePanGesture?: (gesture: PanGesture) => void\n onGestureStart: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => void\n onGestureUpdate: (event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => void\n onGestureEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, success: boolean) => void\n options?: GestureConfig\n },\n) => {\n const {\n onConfigurePanGesture,\n onGestureStart,\n onGestureUpdate,\n onGestureEnd,\n options = {},\n } = customization;\n\n const gesture = useMemo(() => {\n const gesture = Gesture.Pan();\n\n // Save the original gesture callbacks\n const originalGestures = {\n onStart: gesture.onStart,\n onUpdate: gesture.onUpdate,\n onEnd: gesture.onEnd,\n };\n\n // Save the user defined gesture callbacks\n const userDefinedConflictGestures: {\n onStart?: Parameters<(typeof gesture)[\"onStart\"]>[0]\n onUpdate?: Parameters<(typeof gesture)[\"onUpdate\"]>[0]\n onEnd?: Parameters<(typeof gesture)[\"onEnd\"]>[0]\n } = {\n onStart: undefined,\n onUpdate: undefined,\n onEnd: undefined,\n };\n\n const fakeOnStart: typeof gesture.onStart = (cb) => {\n // Using fakeOnStart to save the user defined callback\n userDefinedConflictGestures.onStart = cb;\n return gesture;\n };\n\n const fakeOnUpdate: typeof gesture.onUpdate = (cb) => {\n // Using fakeOnUpdate to save the user defined callback\n userDefinedConflictGestures.onUpdate = cb;\n return gesture;\n };\n\n const fakeOnEnd: typeof gesture.onEnd = (cb) => {\n // Using fakeOnEnd to save the user defined callback\n userDefinedConflictGestures.onEnd = cb;\n return gesture;\n };\n\n // Setup the fake callbacks\n gesture.onStart = fakeOnStart;\n gesture.onUpdate = fakeOnUpdate;\n gesture.onEnd = fakeOnEnd;\n\n if (onConfigurePanGesture)\n // Get the gesture with the user defined configuration\n onConfigurePanGesture(gesture);\n\n // Restore the original callbacks\n gesture.onStart = originalGestures.onStart;\n gesture.onUpdate = originalGestures.onUpdate;\n gesture.onEnd = originalGestures.onEnd;\n\n // Setup the original callbacks with the user defined callbacks\n gesture\n .onStart((e) => {\n onGestureStart(e);\n\n if (userDefinedConflictGestures.onStart)\n userDefinedConflictGestures.onStart(e);\n })\n .onUpdate((e) => {\n onGestureUpdate(e);\n\n if (userDefinedConflictGestures.onUpdate)\n userDefinedConflictGestures.onUpdate(e);\n })\n .onEnd((e, success) => {\n onGestureEnd(e, success);\n\n if (userDefinedConflictGestures.onEnd)\n userDefinedConflictGestures.onEnd(e, success);\n });\n\n return gesture;\n }, [\n onGestureStart,\n onGestureUpdate,\n onGestureEnd,\n onConfigurePanGesture,\n ]);\n\n useUpdateGestureConfig(gesture, options);\n\n return gesture;\n};\n"]}
@@ -40,9 +40,9 @@ describe("Using RNGH v2 gesture API", () => {
40
40
  const pan = usePanGestureProxy({
41
41
  onConfigurePanGesture: gesture => {
42
42
  // This is user's customizations
43
- gesture.onStart(treatStartAsUpdate ? handlers.active : handlers.start).onBegin(handlersFromUser.begin).onUpdate(handlersFromUser.active).onEnd(handlersFromUser.end).onFinalize(handlers.finish).withTestId("pan");
43
+ gesture.onBegin(handlersFromUser.begin).onUpdate(handlersFromUser.active).onEnd(handlersFromUser.end).onFinalize(handlers.finish).withTestId("pan");
44
44
  },
45
- onGestureBegin: handlers.begin,
45
+ onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,
46
46
  onGestureUpdate: handlers.active,
47
47
  onGestureEnd: handlers.end,
48
48
  options: {
@@ -62,9 +62,9 @@ describe("Using RNGH v2 gesture API", () => {
62
62
  const tap = Gesture.Tap().onBegin(tapHandlers.begin).onEnd(tapHandlers.end).withTestId("tap");
63
63
  const pan = usePanGestureProxy({
64
64
  onConfigurePanGesture: _ => {
65
- _.onFinalize(panHandlers.finish).withTestId("pan");
65
+ _.onBegin(panHandlers.begin).onFinalize(panHandlers.finish).withTestId("pan");
66
66
  },
67
- onGestureBegin: panHandlers.begin,
67
+ onGestureStart: panHandlers.start,
68
68
  onGestureUpdate: panHandlers.active,
69
69
  onGestureEnd: panHandlers.end,
70
70
  options: {
@@ -136,9 +136,9 @@ describe("Event list validation", () => {
136
136
  } = _ref3;
137
137
  const pan = usePanGestureProxy({
138
138
  onConfigurePanGesture: _ => {
139
- _.onStart(treatStartAsUpdate ? handlers.active : handlers.start).onBegin(handlersFromUser.begin).onUpdate(handlersFromUser.active).onEnd(handlersFromUser.end).onFinalize(handlers.finish).withTestId("pan");
139
+ _.onBegin(handlersFromUser.begin).onUpdate(handlersFromUser.active).onEnd(handlersFromUser.end).onFinalize(handlers.finish).withTestId("pan");
140
140
  },
141
- onGestureBegin: handlers.begin,
141
+ onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,
142
142
  onGestureUpdate: handlers.active,
143
143
  onGestureEnd: handlers.end,
144
144
  options: {
@@ -200,9 +200,9 @@ describe("Filling event list with defaults", () => {
200
200
  const tap = Gesture.Tap().onBegin(handlers.begin).onEnd(handlers.end).withTestId("tap");
201
201
  const pan = usePanGestureProxy({
202
202
  onConfigurePanGesture: _ => {
203
- _.onStart(treatStartAsUpdate ? handlers.active : handlers.start).onFinalize(handlers.finish).withTestId("pan");
203
+ _.onBegin(handlers.begin).onFinalize(handlers.finish).withTestId("pan");
204
204
  },
205
- onGestureBegin: handlers.begin,
205
+ onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,
206
206
  onGestureUpdate: handlers.active,
207
207
  onGestureEnd: handlers.end,
208
208
  options: {
@@ -1 +1 @@
1
- {"version":3,"sources":["usePanGestureProxy.test.tsx"],"names":["React","Text","Gesture","GestureDetector","GestureHandlerRootView","State","cleanup","render","fireGestureHandler","getByGestureTestId","usePanGestureProxy","beforeEach","mockedEventHandlers","begin","jest","fn","start","active","end","fail","cancel","finish","mockedEventHandlersFromUser","describe","SingleHandler","handlers","handlersFromUser","treatStartAsUpdate","pan","onConfigurePanGesture","gesture","onStart","onBegin","onUpdate","onEnd","onFinalize","withTestId","onGestureBegin","onGestureUpdate","onGestureEnd","options","enabled","RacingHandlers","tapHandlers","panHandlers","tap","Tap","_","Race","it","state","BEGAN","ACTIVE","END","expect","toBeCalledWith","objectContaining","toBeCalled","not","panHandlersFromUser","translationX","toBeCalledTimes","toHaveBeenLastCalledWith","oldState","UNDETERMINED","x","y","toThrow","each","FAILED","CANCELLED","lastState","any","Object","RacingTapAndPan","Exclusive","nthCalledWith","lastCalledWith","anything","toHaveBeenNthCalledWith","toHaveBeenCalledTimes"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { Text } from \"react-native\";\nimport type { PanGesture, PanGestureHandler, TapGesture } from \"react-native-gesture-handler\";\nimport { Gesture, GestureDetector, GestureHandlerRootView, State } from \"react-native-gesture-handler\";\n\nimport { cleanup, render } from \"@testing-library/react-native\";\nimport { fireGestureHandler, getByGestureTestId } from \"react-native-gesture-handler/jest-utils\";\n\nimport { usePanGestureProxy } from \"./usePanGestureProxy\";\n\nbeforeEach(cleanup);\n\nconst mockedEventHandlers = () => {\n return {\n begin: jest.fn(),\n start: jest.fn(),\n active: jest.fn(),\n end: jest.fn(),\n fail: jest.fn(),\n cancel: jest.fn(),\n finish: jest.fn(),\n };\n};\n\nconst mockedEventHandlersFromUser = () => {\n return {\n begin: jest.fn(),\n start: jest.fn(),\n active: jest.fn(),\n end: jest.fn(),\n fail: jest.fn(),\n cancel: jest.fn(),\n finish: jest.fn(),\n };\n};\n\ndescribe(\"Using RNGH v2 gesture API\", () => {\n interface SingleHandlerProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n handlersFromUser: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function SingleHandler({ handlers, handlersFromUser, treatStartAsUpdate }: SingleHandlerProps) {\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (gesture: PanGesture) => {\n // This is user's customizations\n gesture\n .onStart(treatStartAsUpdate ? handlers.active : handlers.start)\n .onBegin(handlersFromUser.begin)\n .onUpdate(handlersFromUser.active)\n .onEnd(handlersFromUser.end)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureBegin: handlers.begin,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={pan}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n interface RacingHandlersProps {\n tapHandlers: ReturnType<typeof mockedEventHandlers>\n panHandlers: ReturnType<typeof mockedEventHandlers>\n }\n\n function RacingHandlers({ tapHandlers, panHandlers }: RacingHandlersProps) {\n const tap = Gesture.Tap()\n .onBegin(tapHandlers.begin)\n .onEnd(tapHandlers.end)\n .withTestId(\"tap\");\n\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onFinalize(panHandlers.finish)\n .withTestId(\"pan\");\n },\n onGestureBegin: panHandlers.begin,\n onGestureUpdate: panHandlers.active,\n onGestureEnd: panHandlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={Gesture.Race(tap, pan)}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"sends events to handlers\", () => {\n const tapHandlers = mockedEventHandlers();\n const panHandlers = mockedEventHandlers();\n render(\n <RacingHandlers tapHandlers={tapHandlers} panHandlers={panHandlers} />,\n );\n\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: State.END },\n ]);\n expect(panHandlers.begin).toBeCalledWith(\n expect.objectContaining({ state: State.BEGAN }),\n );\n expect(panHandlers.finish).toBeCalled();\n expect(tapHandlers.begin).not.toBeCalled();\n });\n\n it(\"sends events with additional data to handlers\", () => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN, translationX: 0 },\n { state: State.ACTIVE, translationX: 10 },\n { translationX: 20 },\n { translationX: 20 },\n { state: State.END, translationX: 30 },\n ]);\n\n expect(panHandlersFromUser.begin).toBeCalledTimes(1);\n expect(panHandlersFromUser.active).toBeCalledTimes(2);\n expect(panHandlersFromUser.end).toBeCalledTimes(1);\n\n expect(panHandlers.active).toBeCalledTimes(3);\n expect(panHandlers.active).toHaveBeenLastCalledWith(\n expect.objectContaining({ translationX: 20 }),\n );\n });\n});\n\ndescribe(\"Event list validation\", () => {\n interface SingleHandlerProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n handlersFromUser: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function SingleHandler({ handlers, handlersFromUser, treatStartAsUpdate }: SingleHandlerProps) {\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onStart(treatStartAsUpdate ? handlers.active : handlers.start)\n .onBegin(handlersFromUser.begin)\n .onUpdate(handlersFromUser.active)\n .onEnd(handlersFromUser.end)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureBegin: handlers.begin,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={pan}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"throws error when oldState doesn't correspond to previous event's state\", () => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} />);\n\n expect(() => {\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { oldState: State.UNDETERMINED, state: State.BEGAN, x: 0, y: 10 },\n { oldState: State.UNDETERMINED, state: State.ACTIVE, x: 1, y: 11 },\n ]);\n }).toThrow(\n \"when state changes, oldState should be the same as previous event' state\",\n );\n });\n\n it.each([[State.END], [State.FAILED], [State.CANCELLED]])(\n \"correctly handles events ending with state %s\",\n (lastState) => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: lastState },\n ]);\n\n expect(panHandlersFromUser.begin).toBeCalledTimes(1);\n expect(panHandlersFromUser.active).toBeCalledTimes(0);\n expect(panHandlersFromUser.end).toBeCalledTimes(1);\n\n if (lastState === State.END)\n expect(panHandlers.end).toBeCalled();\n\n else\n expect(panHandlers.finish).toBeCalledWith(expect.any(Object), false);\n },\n );\n});\n\ndescribe(\"Filling event list with defaults\", () => {\n interface RacingTapAndPanProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function RacingTapAndPan({\n handlers,\n treatStartAsUpdate,\n }: RacingTapAndPanProps) {\n const tap = Gesture.Tap()\n .onBegin(handlers.begin)\n .onEnd(handlers.end)\n .withTestId(\"tap\");\n\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onStart(treatStartAsUpdate ? handlers.active : handlers.start)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureBegin: handlers.begin,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={Gesture.Exclusive(pan, tap)}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"fills oldState if not passed\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGestureHandler>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: State.ACTIVE },\n { state: State.ACTIVE },\n { state: State.END },\n ]);\n\n expect(handlers.begin).toBeCalledWith(\n expect.objectContaining({ oldState: State.UNDETERMINED }),\n );\n expect(handlers.active).nthCalledWith(\n 1,\n expect.objectContaining({ oldState: State.BEGAN }),\n );\n expect(handlers.active).lastCalledWith(\n expect.not.objectContaining({ oldState: expect.anything() }),\n );\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ oldState: State.ACTIVE }),\n true,\n );\n });\n\n it(\"fills missing ACTIVE states\", () => {\n const panHandlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={panHandlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN, x: 0, y: 10 },\n { state: State.ACTIVE, x: 1, y: 11 },\n { x: 2, y: 12 },\n { x: 3, y: 13 },\n { state: State.END, x: 4, y: 14 },\n ]);\n\n expect(panHandlers.active).toBeCalledTimes(3);\n expect(panHandlers.active).toHaveBeenLastCalledWith(\n expect.objectContaining({ x: 3, y: 13 }),\n );\n });\n\n it(\"fills BEGIN and END events for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"), [{ x: 5 }]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledTimes(1);\n });\n\n it(\"with FAILED event, fills BEGIN event for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"), [\n { state: State.FAILED },\n ]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledWith(expect.anything(), false);\n });\n\n it(\"uses event data from first event in filled BEGIN, ACTIVE events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [{ x: 120 }]);\n expect(handlers.begin).toBeCalledWith(expect.objectContaining({ x: 120 }));\n expect(handlers.active).toHaveBeenNthCalledWith(\n 1,\n expect.objectContaining({ x: 120 }),\n );\n });\n\n it(\"uses event data from last event in filled END events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { x: 120, state: State.FAILED },\n ]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.active).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ x: 120 }),\n false,\n );\n });\n\n it(\"uses event data filled events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { x: 5, y: 15 },\n { x: 6, y: 16 },\n { x: 7, y: 17 },\n ]);\n expect(handlers.begin).toBeCalledWith(\n expect.objectContaining({ x: 5, y: 15 }),\n );\n expect(handlers.active).toBeCalledTimes(3);\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ x: 7, y: 17 }),\n true,\n );\n });\n\n it(\"fills BEGIN and END events when they're not present, for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"));\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toHaveBeenCalledTimes(1);\n });\n\n it(\"fills BEGIN, ACTIVE and END events when they're not present, for continuous handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"));\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.active).toBeCalledTimes(1);\n expect(handlers.end).toHaveBeenCalledTimes(1);\n });\n});\n"]}
1
+ {"version":3,"sources":["usePanGestureProxy.test.tsx"],"names":["React","Text","Gesture","GestureDetector","GestureHandlerRootView","State","cleanup","render","fireGestureHandler","getByGestureTestId","usePanGestureProxy","beforeEach","mockedEventHandlers","begin","jest","fn","start","active","end","fail","cancel","finish","mockedEventHandlersFromUser","describe","SingleHandler","handlers","handlersFromUser","treatStartAsUpdate","pan","onConfigurePanGesture","gesture","onBegin","onUpdate","onEnd","onFinalize","withTestId","onGestureStart","onGestureUpdate","onGestureEnd","options","enabled","RacingHandlers","tapHandlers","panHandlers","tap","Tap","_","Race","it","state","BEGAN","ACTIVE","END","expect","toBeCalledWith","objectContaining","toBeCalled","not","panHandlersFromUser","translationX","toBeCalledTimes","toHaveBeenLastCalledWith","oldState","UNDETERMINED","x","y","toThrow","each","FAILED","CANCELLED","lastState","any","Object","RacingTapAndPan","Exclusive","nthCalledWith","lastCalledWith","anything","toHaveBeenNthCalledWith","toHaveBeenCalledTimes"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { Text } from \"react-native\";\nimport type { PanGesture, PanGestureHandler, TapGesture } from \"react-native-gesture-handler\";\nimport { Gesture, GestureDetector, GestureHandlerRootView, State } from \"react-native-gesture-handler\";\n\nimport { cleanup, render } from \"@testing-library/react-native\";\nimport { fireGestureHandler, getByGestureTestId } from \"react-native-gesture-handler/jest-utils\";\n\nimport { usePanGestureProxy } from \"./usePanGestureProxy\";\n\nbeforeEach(cleanup);\n\nconst mockedEventHandlers = () => {\n return {\n begin: jest.fn(),\n start: jest.fn(),\n active: jest.fn(),\n end: jest.fn(),\n fail: jest.fn(),\n cancel: jest.fn(),\n finish: jest.fn(),\n };\n};\n\nconst mockedEventHandlersFromUser = () => {\n return {\n begin: jest.fn(),\n start: jest.fn(),\n active: jest.fn(),\n end: jest.fn(),\n fail: jest.fn(),\n cancel: jest.fn(),\n finish: jest.fn(),\n };\n};\n\ndescribe(\"Using RNGH v2 gesture API\", () => {\n interface SingleHandlerProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n handlersFromUser: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function SingleHandler({ handlers, handlersFromUser, treatStartAsUpdate }: SingleHandlerProps) {\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (gesture: PanGesture) => {\n // This is user's customizations\n gesture\n .onBegin(handlersFromUser.begin)\n .onUpdate(handlersFromUser.active)\n .onEnd(handlersFromUser.end)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={pan}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n interface RacingHandlersProps {\n tapHandlers: ReturnType<typeof mockedEventHandlers>\n panHandlers: ReturnType<typeof mockedEventHandlers>\n }\n\n function RacingHandlers({ tapHandlers, panHandlers }: RacingHandlersProps) {\n const tap = Gesture.Tap()\n .onBegin(tapHandlers.begin)\n .onEnd(tapHandlers.end)\n .withTestId(\"tap\");\n\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onBegin(panHandlers.begin)\n .onFinalize(panHandlers.finish)\n .withTestId(\"pan\");\n },\n onGestureStart: panHandlers.start,\n onGestureUpdate: panHandlers.active,\n onGestureEnd: panHandlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={Gesture.Race(tap, pan)}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"sends events to handlers\", () => {\n const tapHandlers = mockedEventHandlers();\n const panHandlers = mockedEventHandlers();\n render(\n <RacingHandlers tapHandlers={tapHandlers} panHandlers={panHandlers} />,\n );\n\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: State.END },\n ]);\n expect(panHandlers.begin).toBeCalledWith(\n expect.objectContaining({ state: State.BEGAN }),\n );\n expect(panHandlers.finish).toBeCalled();\n expect(tapHandlers.begin).not.toBeCalled();\n });\n\n it(\"sends events with additional data to handlers\", () => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN, translationX: 0 },\n { state: State.ACTIVE, translationX: 10 },\n { translationX: 20 },\n { translationX: 20 },\n { state: State.END, translationX: 30 },\n ]);\n\n expect(panHandlersFromUser.begin).toBeCalledTimes(1);\n expect(panHandlersFromUser.active).toBeCalledTimes(2);\n expect(panHandlersFromUser.end).toBeCalledTimes(1);\n\n expect(panHandlers.active).toBeCalledTimes(3);\n expect(panHandlers.active).toHaveBeenLastCalledWith(\n expect.objectContaining({ translationX: 20 }),\n );\n });\n});\n\ndescribe(\"Event list validation\", () => {\n interface SingleHandlerProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n handlersFromUser: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function SingleHandler({ handlers, handlersFromUser, treatStartAsUpdate }: SingleHandlerProps) {\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onBegin(handlersFromUser.begin)\n .onUpdate(handlersFromUser.active)\n .onEnd(handlersFromUser.end)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={pan}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"throws error when oldState doesn't correspond to previous event's state\", () => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} />);\n\n expect(() => {\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { oldState: State.UNDETERMINED, state: State.BEGAN, x: 0, y: 10 },\n { oldState: State.UNDETERMINED, state: State.ACTIVE, x: 1, y: 11 },\n ]);\n }).toThrow(\n \"when state changes, oldState should be the same as previous event' state\",\n );\n });\n\n it.each([[State.END], [State.FAILED], [State.CANCELLED]])(\n \"correctly handles events ending with state %s\",\n (lastState) => {\n const panHandlers = mockedEventHandlers();\n const panHandlersFromUser = mockedEventHandlersFromUser();\n render(<SingleHandler handlers={panHandlers} handlersFromUser={panHandlersFromUser} />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: lastState },\n ]);\n\n expect(panHandlersFromUser.begin).toBeCalledTimes(1);\n expect(panHandlersFromUser.active).toBeCalledTimes(0);\n expect(panHandlersFromUser.end).toBeCalledTimes(1);\n\n if (lastState === State.END)\n expect(panHandlers.end).toBeCalled();\n\n else\n expect(panHandlers.finish).toBeCalledWith(expect.any(Object), false);\n },\n );\n});\n\ndescribe(\"Filling event list with defaults\", () => {\n interface RacingTapAndPanProps {\n handlers: ReturnType<typeof mockedEventHandlers>\n treatStartAsUpdate?: boolean\n }\n\n function RacingTapAndPan({\n handlers,\n treatStartAsUpdate,\n }: RacingTapAndPanProps) {\n const tap = Gesture.Tap()\n .onBegin(handlers.begin)\n .onEnd(handlers.end)\n .withTestId(\"tap\");\n\n const pan = usePanGestureProxy({\n onConfigurePanGesture: (_: PanGesture) => {\n _\n .onBegin(handlers.begin)\n .onFinalize(handlers.finish)\n .withTestId(\"pan\");\n },\n onGestureStart: treatStartAsUpdate ? handlers.active : handlers.start,\n onGestureUpdate: handlers.active,\n onGestureEnd: handlers.end,\n options: { enabled: true },\n });\n\n return (\n <GestureHandlerRootView>\n <GestureDetector gesture={Gesture.Exclusive(pan, tap)}>\n <Text>v2 API test</Text>\n </GestureDetector>\n </GestureHandlerRootView>\n );\n }\n\n it(\"fills oldState if not passed\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGestureHandler>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN },\n { state: State.ACTIVE },\n { state: State.ACTIVE },\n { state: State.ACTIVE },\n { state: State.END },\n ]);\n\n expect(handlers.begin).toBeCalledWith(\n expect.objectContaining({ oldState: State.UNDETERMINED }),\n );\n expect(handlers.active).nthCalledWith(\n 1,\n expect.objectContaining({ oldState: State.BEGAN }),\n );\n expect(handlers.active).lastCalledWith(\n expect.not.objectContaining({ oldState: expect.anything() }),\n );\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ oldState: State.ACTIVE }),\n true,\n );\n });\n\n it(\"fills missing ACTIVE states\", () => {\n const panHandlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={panHandlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { state: State.BEGAN, x: 0, y: 10 },\n { state: State.ACTIVE, x: 1, y: 11 },\n { x: 2, y: 12 },\n { x: 3, y: 13 },\n { state: State.END, x: 4, y: 14 },\n ]);\n\n expect(panHandlers.active).toBeCalledTimes(3);\n expect(panHandlers.active).toHaveBeenLastCalledWith(\n expect.objectContaining({ x: 3, y: 13 }),\n );\n });\n\n it(\"fills BEGIN and END events for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"), [{ x: 5 }]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledTimes(1);\n });\n\n it(\"with FAILED event, fills BEGIN event for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"), [\n { state: State.FAILED },\n ]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledWith(expect.anything(), false);\n });\n\n it(\"uses event data from first event in filled BEGIN, ACTIVE events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [{ x: 120 }]);\n expect(handlers.begin).toBeCalledWith(expect.objectContaining({ x: 120 }));\n expect(handlers.active).toHaveBeenNthCalledWith(\n 1,\n expect.objectContaining({ x: 120 }),\n );\n });\n\n it(\"uses event data from last event in filled END events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { x: 120, state: State.FAILED },\n ]);\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.active).toBeCalledTimes(1);\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ x: 120 }),\n false,\n );\n });\n\n it(\"uses event data filled events\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"), [\n { x: 5, y: 15 },\n { x: 6, y: 16 },\n { x: 7, y: 17 },\n ]);\n expect(handlers.begin).toBeCalledWith(\n expect.objectContaining({ x: 5, y: 15 }),\n );\n expect(handlers.active).toBeCalledTimes(3);\n expect(handlers.end).toBeCalledWith(\n expect.objectContaining({ x: 7, y: 17 }),\n true,\n );\n });\n\n it(\"fills BEGIN and END events when they're not present, for discrete handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<TapGesture>(getByGestureTestId(\"tap\"));\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.end).toHaveBeenCalledTimes(1);\n });\n\n it(\"fills BEGIN, ACTIVE and END events when they're not present, for continuous handlers\", () => {\n const handlers = mockedEventHandlers();\n render(<RacingTapAndPan handlers={handlers} treatStartAsUpdate />);\n fireGestureHandler<PanGesture>(getByGestureTestId(\"pan\"));\n expect(handlers.begin).toBeCalledTimes(1);\n expect(handlers.active).toBeCalledTimes(1);\n expect(handlers.end).toHaveBeenCalledTimes(1);\n });\n});\n"]}
@@ -1,3 +1,4 @@
1
+ import { useRef } from "react";
1
2
  import { useDerivedValue } from "react-native-reanimated";
2
3
  export function useVisibleRanges(options) {
3
4
  const {
@@ -8,40 +9,55 @@ export function useVisibleRanges(options) {
8
9
  loop
9
10
  } = options;
10
11
  const windowSize = _windowSize !== null && _windowSize !== void 0 ? _windowSize : total;
12
+ const cachedRanges = useRef(null);
11
13
  const ranges = useDerivedValue(() => {
14
+ var _cachedRanges$current, _cachedRanges$current2, _cachedRanges$current3, _cachedRanges$current4;
15
+
12
16
  const positiveCount = Math.round(windowSize / 2);
13
17
  const negativeCount = windowSize - positiveCount;
14
18
  let currentIndex = Math.round(-translation.value / viewSize);
15
19
  currentIndex = currentIndex < 0 ? currentIndex % total + total : currentIndex;
20
+ let newRanges;
16
21
 
17
22
  if (!loop) {
18
23
  // Adjusting negative range if the carousel is not loopable.
19
24
  // So, It will be only displayed the positive items.
20
- return {
25
+ newRanges = {
21
26
  negativeRange: [0 + currentIndex - (windowSize - 1), 0 + currentIndex],
22
27
  positiveRange: [0 + currentIndex, currentIndex + (windowSize - 1)]
23
28
  };
24
- }
29
+ } else {
30
+ const negativeRange = [(currentIndex - negativeCount + total) % total, (currentIndex - 1 + total) % total];
31
+ const positiveRange = [(currentIndex + total) % total, (currentIndex + positiveCount + total) % total];
25
32
 
26
- const negativeRange = [(currentIndex - negativeCount + total) % total, (currentIndex - 1 + total) % total];
27
- const positiveRange = [(currentIndex + total) % total, (currentIndex + positiveCount + total) % total];
33
+ if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {
34
+ negativeRange[1] = total - 1;
35
+ positiveRange[0] = 0;
36
+ }
28
37
 
29
- if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {
30
- negativeRange[1] = total - 1;
31
- positiveRange[0] = 0;
32
- }
38
+ if (positiveRange[0] > positiveRange[1]) {
39
+ negativeRange[1] = total - 1;
40
+ positiveRange[0] = 0;
41
+ } // console.log({ negativeRange, positiveRange ,total,windowSize,a:total <= _windowSize})
33
42
 
34
- if (positiveRange[0] > positiveRange[1]) {
35
- negativeRange[1] = total - 1;
36
- positiveRange[0] = 0;
37
- } // console.log({ negativeRange, positiveRange ,total,windowSize,a:total <= _windowSize})
38
43
 
44
+ newRanges = {
45
+ negativeRange,
46
+ positiveRange
47
+ };
48
+ }
39
49
 
40
- return {
41
- negativeRange,
42
- positiveRange
43
- };
50
+ if (isArraysEqual((_cachedRanges$current = (_cachedRanges$current2 = cachedRanges.current) === null || _cachedRanges$current2 === void 0 ? void 0 : _cachedRanges$current2.negativeRange) !== null && _cachedRanges$current !== void 0 ? _cachedRanges$current : [], newRanges.negativeRange) && isArraysEqual((_cachedRanges$current3 = (_cachedRanges$current4 = cachedRanges.current) === null || _cachedRanges$current4 === void 0 ? void 0 : _cachedRanges$current4.positiveRange) !== null && _cachedRanges$current3 !== void 0 ? _cachedRanges$current3 : [], newRanges.positiveRange)) return cachedRanges.current;
51
+ cachedRanges.current = newRanges;
52
+ return cachedRanges.current;
44
53
  }, [loop, total, windowSize, translation]);
45
54
  return ranges;
46
55
  }
56
+
57
+ function isArraysEqual(a, b) {
58
+ "worklet";
59
+
60
+ if (a.length !== b.length) return false;
61
+ return a.every((value, index) => value === b[index]);
62
+ }
47
63
  //# sourceMappingURL=useVisibleRanges.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["useVisibleRanges.tsx"],"names":["useDerivedValue","useVisibleRanges","options","total","viewSize","translation","windowSize","_windowSize","loop","ranges","positiveCount","Math","round","negativeCount","currentIndex","value","negativeRange","positiveRange"],"mappings":"AACA,SAASA,eAAT,QAAgC,yBAAhC;AAOA,OAAO,SAASC,gBAAT,CAA0BC,OAA1B,EAMY;AACjB,QAAM;AACJC,IAAAA,KAAK,GAAG,CADJ;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,WAHI;AAIJC,IAAAA,UAAU,EAAEC,WAJR;AAKJC,IAAAA;AALI,MAMFN,OANJ;AAQA,QAAMI,UAAU,GAAGC,WAAH,aAAGA,WAAH,cAAGA,WAAH,GAAkBJ,KAAlC;AAEA,QAAMM,MAAM,GAAGT,eAAe,CAAC,MAAM;AACnC,UAAMU,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWN,UAAU,GAAG,CAAxB,CAAtB;AACA,UAAMO,aAAa,GAAGP,UAAU,GAAGI,aAAnC;AAEA,QAAII,YAAY,GAAGH,IAAI,CAACC,KAAL,CAAW,CAACP,WAAW,CAACU,KAAb,GAAqBX,QAAhC,CAAnB;AACAU,IAAAA,YAAY,GAAGA,YAAY,GAAG,CAAf,GAAoBA,YAAY,GAAGX,KAAhB,GAAyBA,KAA5C,GAAoDW,YAAnE;;AAEA,QAAI,CAACN,IAAL,EAAW;AACT;AACA;AACA,aAAO;AACLQ,QAAAA,aAAa,EAAE,CAAC,IAAIF,YAAJ,IAAoBR,UAAU,GAAG,CAAjC,CAAD,EAAsC,IAAIQ,YAA1C,CADV;AAELG,QAAAA,aAAa,EAAE,CAAC,IAAIH,YAAL,EAAmBA,YAAY,IAAIR,UAAU,GAAG,CAAjB,CAA/B;AAFV,OAAP;AAID;;AAED,UAAMU,aAAa,GAAG,CACpB,CAACF,YAAY,GAAGD,aAAf,GAA+BV,KAAhC,IAAyCA,KADrB,EAEpB,CAACW,YAAY,GAAG,CAAf,GAAmBX,KAApB,IAA6BA,KAFT,CAAtB;AAKA,UAAMc,aAAa,GAAG,CACpB,CAACH,YAAY,GAAGX,KAAhB,IAAyBA,KADL,EAEpB,CAACW,YAAY,GAAGJ,aAAf,GAA+BP,KAAhC,IAAyCA,KAFrB,CAAtB;;AAKA,QAAIa,aAAa,CAAC,CAAD,CAAb,GAAmBb,KAAnB,IAA4Ba,aAAa,CAAC,CAAD,CAAb,GAAmBA,aAAa,CAAC,CAAD,CAAhE,EAAqE;AACnEA,MAAAA,aAAa,CAAC,CAAD,CAAb,GAAmBb,KAAK,GAAG,CAA3B;AACAc,MAAAA,aAAa,CAAC,CAAD,CAAb,GAAmB,CAAnB;AACD;;AACD,QAAIA,aAAa,CAAC,CAAD,CAAb,GAAmBA,aAAa,CAAC,CAAD,CAApC,EAAyC;AACvCD,MAAAA,aAAa,CAAC,CAAD,CAAb,GAAmBb,KAAK,GAAG,CAA3B;AACAc,MAAAA,aAAa,CAAC,CAAD,CAAb,GAAmB,CAAnB;AACD,KAjCkC,CAkCnC;;;AACA,WAAO;AAAED,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,KAAP;AACD,GApC6B,EAoC3B,CAACT,IAAD,EAAOL,KAAP,EAAcG,UAAd,EAA0BD,WAA1B,CApC2B,CAA9B;AAsCA,SAAOI,MAAP;AACD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { useDerivedValue } from \"react-native-reanimated\";\n\nexport type IVisibleRanges = Animated.SharedValue<{\n negativeRange: number[]\n positiveRange: number[]\n}>;\n\nexport function useVisibleRanges(options: {\n total: number\n viewSize: number\n windowSize?: number\n translation: Animated.SharedValue<number>\n loop?: boolean\n}): IVisibleRanges {\n const {\n total = 0,\n viewSize,\n translation,\n windowSize: _windowSize,\n loop,\n } = options;\n\n const windowSize = _windowSize ?? total;\n\n const ranges = useDerivedValue(() => {\n const positiveCount = Math.round(windowSize / 2);\n const negativeCount = windowSize - positiveCount;\n\n let currentIndex = Math.round(-translation.value / viewSize);\n currentIndex = currentIndex < 0 ? (currentIndex % total) + total : currentIndex;\n\n if (!loop) {\n // Adjusting negative range if the carousel is not loopable.\n // So, It will be only displayed the positive items.\n return {\n negativeRange: [0 + currentIndex - (windowSize - 1), 0 + currentIndex],\n positiveRange: [0 + currentIndex, currentIndex + (windowSize - 1)],\n };\n }\n\n const negativeRange = [\n (currentIndex - negativeCount + total) % total,\n (currentIndex - 1 + total) % total,\n ];\n\n const positiveRange = [\n (currentIndex + total) % total,\n (currentIndex + positiveCount + total) % total,\n ];\n\n if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n if (positiveRange[0] > positiveRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n // console.log({ negativeRange, positiveRange ,total,windowSize,a:total <= _windowSize})\n return { negativeRange, positiveRange };\n }, [loop, total, windowSize, translation]);\n\n return ranges;\n}\n"]}
1
+ {"version":3,"sources":["useVisibleRanges.tsx"],"names":["useRef","useDerivedValue","useVisibleRanges","options","total","viewSize","translation","windowSize","_windowSize","loop","cachedRanges","ranges","positiveCount","Math","round","negativeCount","currentIndex","value","newRanges","negativeRange","positiveRange","isArraysEqual","current","a","b","length","every","index"],"mappings":"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","sourcesContent":["import { useRef } from \"react\";\nimport type Animated from \"react-native-reanimated\";\nimport { useDerivedValue } from \"react-native-reanimated\";\n\ntype Range = [number, number];\n\nexport interface VisibleRanges {\n negativeRange: Range\n positiveRange: Range\n}\n\nexport type IVisibleRanges = Animated.SharedValue<VisibleRanges>;\n\nexport function useVisibleRanges(options: {\n total: number\n viewSize: number\n windowSize?: number\n translation: Animated.SharedValue<number>\n loop?: boolean\n}): IVisibleRanges {\n const {\n total = 0,\n viewSize,\n translation,\n windowSize: _windowSize,\n loop,\n } = options;\n\n const windowSize = _windowSize ?? total;\n const cachedRanges = useRef<VisibleRanges>(null!);\n\n const ranges = useDerivedValue(() => {\n const positiveCount = Math.round(windowSize / 2);\n const negativeCount = windowSize - positiveCount;\n\n let currentIndex = Math.round(-translation.value / viewSize);\n currentIndex = currentIndex < 0 ? (currentIndex % total) + total : currentIndex;\n\n let newRanges: VisibleRanges;\n\n if (!loop) {\n // Adjusting negative range if the carousel is not loopable.\n // So, It will be only displayed the positive items.\n newRanges = {\n negativeRange: [0 + currentIndex - (windowSize - 1), 0 + currentIndex],\n positiveRange: [0 + currentIndex, currentIndex + (windowSize - 1)],\n };\n }\n else {\n const negativeRange: Range = [\n (currentIndex - negativeCount + total) % total,\n (currentIndex - 1 + total) % total,\n ];\n\n const positiveRange: Range = [\n (currentIndex + total) % total,\n (currentIndex + positiveCount + total) % total,\n ];\n\n if (negativeRange[0] < total && negativeRange[0] > negativeRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n if (positiveRange[0] > positiveRange[1]) {\n negativeRange[1] = total - 1;\n positiveRange[0] = 0;\n }\n\n // console.log({ negativeRange, positiveRange ,total,windowSize,a:total <= _windowSize})\n newRanges = { negativeRange, positiveRange };\n }\n\n if (\n isArraysEqual(\n cachedRanges.current?.negativeRange ?? [],\n newRanges.negativeRange,\n )\n && isArraysEqual(\n cachedRanges.current?.positiveRange ?? [],\n newRanges.positiveRange,\n )\n )\n return cachedRanges.current;\n\n cachedRanges.current = newRanges;\n return cachedRanges.current;\n }, [loop, total, windowSize, translation]);\n\n return ranges;\n}\n\nfunction isArraysEqual(a: number[], b: number[]): boolean {\n \"worklet\";\n if (a.length !== b.length) return false;\n\n return a.every((value, index) => value === b[index]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,uBAArB;AASA,eAAeA,QAAf","sourcesContent":["import Carousel from \"./components/Carousel\";\nexport type {\n TCarouselProps,\n ICarouselInstance,\n IComputedDirectionTypes,\n CarouselRenderItem,\n} from \"./types\";\nexport type { ILayoutConfig } from \"./layouts/stack\";\n\nexport default Carousel;\n"]}
1
+ {"version":3,"sources":["index.tsx"],"names":["Carousel"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,uBAArB;AAWA,eAAeA,QAAf","sourcesContent":["import Carousel from \"./components/Carousel\";\n\nexport type {\n TCarouselProps,\n ICarouselInstance,\n IComputedDirectionTypes,\n CarouselRenderItem,\n} from \"./types\";\nexport type { TAnimationStyle } from \"./components/BaseLayout\";\nexport type { ILayoutConfig } from \"./layouts/stack\";\n\nexport default Carousel;\n"]}
@@ -0,0 +1,22 @@
1
+ import type { FC } from "react";
2
+ import type { ViewStyle } from "react-native";
3
+ import type Animated from "react-native-reanimated";
4
+ import { type AnimatedStyleProp } from "react-native-reanimated";
5
+ import type { TAnimationStyle } from "./BaseLayout";
6
+ import type { CarouselRenderItem } from "../types";
7
+ interface Props {
8
+ data: any[];
9
+ dataLength: number;
10
+ rawDataLength: number;
11
+ loop: boolean;
12
+ size: number;
13
+ windowSize?: number;
14
+ autoFillData: boolean;
15
+ offsetX: Animated.SharedValue<number>;
16
+ handlerOffset: Animated.SharedValue<number>;
17
+ layoutConfig: TAnimationStyle;
18
+ renderItem: CarouselRenderItem<any>;
19
+ customAnimation?: ((value: number) => AnimatedStyleProp<ViewStyle>);
20
+ }
21
+ export declare const ItemRenderer: FC<Props>;
22
+ export {};
@@ -7,7 +7,7 @@ interface Props {
7
7
  infinite?: boolean;
8
8
  testID?: string;
9
9
  style?: StyleProp<ViewStyle>;
10
- onScrollBegin?: () => void;
10
+ onScrollStart?: () => void;
11
11
  onScrollEnd?: () => void;
12
12
  onTouchBegin?: () => void;
13
13
  onTouchEnd?: () => void;
@@ -10,7 +10,7 @@ interface IOpts {
10
10
  fixedDirection?: TCarouselProps["fixedDirection"];
11
11
  duration?: number;
12
12
  defaultIndex?: number;
13
- onScrollBegin?: () => void;
13
+ onScrollStart?: () => void;
14
14
  onScrollEnd?: () => void;
15
15
  }
16
16
  export interface ICarouselController {
@@ -2,7 +2,7 @@ import type { GestureStateChangeEvent, GestureUpdateEvent, PanGesture, PanGestur
2
2
  import type { GestureConfig } from "./useUpdateGestureConfig";
3
3
  export declare const usePanGestureProxy: (customization: {
4
4
  onConfigurePanGesture?: ((gesture: PanGesture) => void) | undefined;
5
- onGestureBegin: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => void;
5
+ onGestureStart: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>) => void;
6
6
  onGestureUpdate: (event: GestureUpdateEvent<PanGestureHandlerEventPayload>) => void;
7
7
  onGestureEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, success: boolean) => void;
8
8
  options?: GestureConfig | undefined;
@@ -1,8 +1,10 @@
1
1
  import type Animated from "react-native-reanimated";
2
- export declare type IVisibleRanges = Animated.SharedValue<{
3
- negativeRange: number[];
4
- positiveRange: number[];
5
- }>;
2
+ declare type Range = [number, number];
3
+ export interface VisibleRanges {
4
+ negativeRange: Range;
5
+ positiveRange: Range;
6
+ }
7
+ export declare type IVisibleRanges = Animated.SharedValue<VisibleRanges>;
6
8
  export declare function useVisibleRanges(options: {
7
9
  total: number;
8
10
  viewSize: number;
@@ -10,3 +12,4 @@ export declare function useVisibleRanges(options: {
10
12
  translation: Animated.SharedValue<number>;
11
13
  loop?: boolean;
12
14
  }): IVisibleRanges;
15
+ export {};
@@ -1,4 +1,5 @@
1
1
  import Carousel from "./components/Carousel";
2
2
  export type { TCarouselProps, ICarouselInstance, IComputedDirectionTypes, CarouselRenderItem, } from "./types";
3
+ export type { TAnimationStyle } from "./components/BaseLayout";
3
4
  export type { ILayoutConfig } from "./layouts/stack";
4
5
  export default Carousel;
@@ -164,9 +164,9 @@ export declare type TCarouselProps<T = any> = {
164
164
  */
165
165
  onSnapToItem?: (index: number) => void;
166
166
  /**
167
- * On scroll begin
167
+ * On scroll start
168
168
  */
169
- onScrollBegin?: () => void;
169
+ onScrollStart?: () => void;
170
170
  /**
171
171
  * On scroll end
172
172
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-reanimated-carousel",
3
- "version": "4.0.0-alpha.7",
3
+ "version": "4.0.0-alpha.9",
4
4
  "description": "Simple carousel component.fully implemented using Reanimated 2.Infinitely scrolling, very smooth.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -2,15 +2,10 @@ import React from "react";
2
2
  import type { ViewStyle } from "react-native";
3
3
  import type { AnimatedStyleProp } from "react-native-reanimated";
4
4
  import Animated, {
5
- runOnJS,
6
- useAnimatedReaction,
7
5
  useAnimatedStyle,
8
6
  useDerivedValue,
9
7
  } from "react-native-reanimated";
10
8
 
11
- import { LazyView } from "./LazyView";
12
-
13
- import { useCheckMounted } from "../hooks/useCheckMounted";
14
9
  import type { IOpts } from "../hooks/useOffsetX";
15
10
  import { useOffsetX } from "../hooks/useOffsetX";
16
11
  import type { IVisibleRanges } from "../hooks/useVisibleRanges";
@@ -28,7 +23,6 @@ export const BaseLayout: React.FC<{
28
23
  animationValue: Animated.SharedValue<number>
29
24
  }) => React.ReactElement
30
25
  }> = (props) => {
31
- const mounted = useCheckMounted();
32
26
  const { handlerOffset, index, children, visibleRanges, animationStyle }
33
27
  = props;
34
28
 
@@ -46,7 +40,7 @@ export const BaseLayout: React.FC<{
46
40
  },
47
41
  } = context;
48
42
  const size = vertical ? height : width;
49
- const [shouldUpdate, setShouldUpdate] = React.useState(false);
43
+
50
44
  let offsetXConfig: IOpts = {
51
45
  handlerOffset,
52
46
  index,
@@ -79,28 +73,6 @@ export const BaseLayout: React.FC<{
79
73
  [animationStyle],
80
74
  );
81
75
 
82
- const updateView = React.useCallback(
83
- (negativeRange: number[], positiveRange: number[]) => {
84
- mounted.current
85
- && setShouldUpdate(
86
- (index >= negativeRange[0] && index <= negativeRange[1])
87
- || (index >= positiveRange[0] && index <= positiveRange[1]),
88
- );
89
- },
90
- [index, mounted],
91
- );
92
-
93
- useAnimatedReaction(
94
- () => visibleRanges.value,
95
- () => {
96
- runOnJS(updateView)(
97
- visibleRanges.value.negativeRange,
98
- visibleRanges.value.positiveRange,
99
- );
100
- },
101
- [visibleRanges.value],
102
- );
103
-
104
76
  return (
105
77
  <Animated.View
106
78
  style={[
@@ -116,11 +88,9 @@ export const BaseLayout: React.FC<{
116
88
  * e.g.
117
89
  * The testID of first item will be changed to __CAROUSEL_ITEM_0_READY__ from __CAROUSEL_ITEM_0_NOT_READY__ when the item is ready.
118
90
  * */
119
- testID={`__CAROUSEL_ITEM_${index}_${shouldUpdate ? "READY" : "NOT_READY"}__`}
91
+ testID={`__CAROUSEL_ITEM_${index}__`}
120
92
  >
121
- <LazyView shouldUpdate={shouldUpdate}>
122
- {children({ animationValue })}
123
- </LazyView>
93
+ {children({ animationValue })}
124
94
  </Animated.View>
125
95
  );
126
96
  };