react-native-app-onboard 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +89 -7
  2. package/lib/commonjs/components/CustomPages.js +31 -55
  3. package/lib/commonjs/components/CustomPages.js.map +1 -1
  4. package/lib/commonjs/components/OnboardingPages.js +59 -74
  5. package/lib/commonjs/components/OnboardingPages.js.map +1 -1
  6. package/lib/commonjs/components/Page.js +8 -3
  7. package/lib/commonjs/components/Page.js.map +1 -1
  8. package/lib/commonjs/components/Pagination.js +75 -13
  9. package/lib/commonjs/components/Pagination.js.map +1 -1
  10. package/lib/commonjs/components/Swiper.js +58 -85
  11. package/lib/commonjs/components/Swiper.js.map +1 -1
  12. package/lib/commonjs/components/button.js +3 -1
  13. package/lib/commonjs/components/button.js.map +1 -1
  14. package/lib/commonjs/context/OnboardingContext.js +101 -21
  15. package/lib/commonjs/context/OnboardingContext.js.map +1 -1
  16. package/lib/commonjs/hooks/useOnboarding.js +1 -1
  17. package/lib/commonjs/hooks/useOnboarding.js.map +1 -1
  18. package/lib/commonjs/index.js +33 -2
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/commonjs/utils/persistence.js +51 -0
  21. package/lib/commonjs/utils/persistence.js.map +1 -0
  22. package/lib/module/components/CustomPages.js +31 -55
  23. package/lib/module/components/CustomPages.js.map +1 -1
  24. package/lib/module/components/OnboardingPages.js +60 -75
  25. package/lib/module/components/OnboardingPages.js.map +1 -1
  26. package/lib/module/components/Page.js +8 -3
  27. package/lib/module/components/Page.js.map +1 -1
  28. package/lib/module/components/Pagination.js +76 -14
  29. package/lib/module/components/Pagination.js.map +1 -1
  30. package/lib/module/components/Swiper.js +59 -86
  31. package/lib/module/components/Swiper.js.map +1 -1
  32. package/lib/module/components/button.js +3 -1
  33. package/lib/module/components/button.js.map +1 -1
  34. package/lib/module/context/OnboardingContext.js +102 -22
  35. package/lib/module/context/OnboardingContext.js.map +1 -1
  36. package/lib/module/hooks/useOnboarding.js +1 -1
  37. package/lib/module/hooks/useOnboarding.js.map +1 -1
  38. package/lib/module/index.js +8 -1
  39. package/lib/module/index.js.map +1 -1
  40. package/lib/module/utils/persistence.js +42 -0
  41. package/lib/module/utils/persistence.js.map +1 -0
  42. package/lib/typescript/src/components/CustomPages.d.ts +6 -2
  43. package/lib/typescript/src/components/CustomPages.d.ts.map +1 -1
  44. package/lib/typescript/src/components/OnboardingPages.d.ts +6 -2
  45. package/lib/typescript/src/components/OnboardingPages.d.ts.map +1 -1
  46. package/lib/typescript/src/components/Page.d.ts +2 -0
  47. package/lib/typescript/src/components/Page.d.ts.map +1 -1
  48. package/lib/typescript/src/components/Pagination.d.ts +9 -0
  49. package/lib/typescript/src/components/Pagination.d.ts.map +1 -1
  50. package/lib/typescript/src/components/Swiper.d.ts.map +1 -1
  51. package/lib/typescript/src/components/button.d.ts.map +1 -1
  52. package/lib/typescript/src/context/OnboardingContext.d.ts +9 -0
  53. package/lib/typescript/src/context/OnboardingContext.d.ts.map +1 -1
  54. package/lib/typescript/src/hooks/useOnboarding.d.ts +3 -0
  55. package/lib/typescript/src/hooks/useOnboarding.d.ts.map +1 -1
  56. package/lib/typescript/src/index.d.ts +4 -0
  57. package/lib/typescript/src/index.d.ts.map +1 -1
  58. package/lib/typescript/src/types/index.d.ts +13 -0
  59. package/lib/typescript/src/types/index.d.ts.map +1 -1
  60. package/lib/typescript/src/utils/persistence.d.ts +31 -0
  61. package/lib/typescript/src/utils/persistence.d.ts.map +1 -0
  62. package/package.json +13 -3
  63. package/src/components/CustomPages.tsx +62 -69
  64. package/src/components/OnboardingPages.tsx +79 -82
  65. package/src/components/Page.tsx +8 -2
  66. package/src/components/Pagination.tsx +121 -29
  67. package/src/components/Swiper.tsx +65 -87
  68. package/src/components/button.tsx +6 -1
  69. package/src/context/OnboardingContext.tsx +145 -26
  70. package/src/hooks/useOnboarding.tsx +1 -3
  71. package/src/index.tsx +16 -1
  72. package/src/types/index.ts +13 -0
  73. package/src/utils/persistence.ts +58 -0
@@ -11,12 +11,12 @@ const {
11
11
  width,
12
12
  height
13
13
  } = _reactNative.Dimensions.get('window');
14
- const potrait = height > width;
14
+ const portrait = height > width;
15
15
  function OnboardingPage(props) {
16
16
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
17
17
  style: [styles.container, {
18
18
  width: props.width
19
- }, props.containerStyle, props.swap && styles.swapStyle]
19
+ }, props.containerStyle, props.swap && styles.swapStyle, props.mirror && styles.mirror]
20
20
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
21
21
  style: [styles.imageContainer, props.imageContainerStyle]
22
22
  }, props.image), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
@@ -50,7 +50,7 @@ const styles = _reactNative.StyleSheet.create({
50
50
  },
51
51
  imageContainer: {
52
52
  flex: 0,
53
- paddingBottom: potrait ? 60 : 10,
53
+ paddingBottom: portrait ? 60 : 10,
54
54
  alignItems: 'center',
55
55
  width: '100%'
56
56
  },
@@ -59,6 +59,11 @@ const styles = _reactNative.StyleSheet.create({
59
59
  },
60
60
  swapStyle: {
61
61
  flexDirection: 'column-reverse'
62
+ },
63
+ mirror: {
64
+ transform: [{
65
+ scaleX: -1
66
+ }]
62
67
  }
63
68
  });
64
69
  //# sourceMappingURL=Page.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","width","height","Dimensions","get","potrait","OnboardingPage","props","createElement","View","style","styles","container","containerStyle","swap","swapStyle","imageContainer","imageContainerStyle","image","titleContainer","titleContainerStyle","Text","title","color","titleStyle","subtitle","subtitleStyle","StyleSheet","create","flex","justifyContent","alignItems","flexDirection","fontSize","fontWeight","paddingBottom","textAlign","marginHorizontal"],"sourceRoot":"../../../src","sources":["components/Page.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAiB1B,MAAM;EAAEG,KAAK;EAAEC;AAAO,CAAC,GAAGC,uBAAU,CAACC,GAAG,CAAC,QAAQ,CAAC;AAClD,MAAMC,OAAO,GAAGH,MAAM,GAAGD,KAAK;AAEvB,SAASK,cAAcA,CAACC,KAAW,EAAE;EAC1C,oBACEX,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAACC,SAAS,EAChB;MAAEX,KAAK,EAAEM,KAAK,CAACN;IAAM,CAAC,EACtBM,KAAK,CAACM,cAAc,EACpBN,KAAK,CAACO,IAAI,IAAIH,MAAM,CAACI,SAAS;EAC9B,gBAEFnB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACK,cAAc,EAAET,KAAK,CAACU,mBAAmB;EAAE,GAC7DV,KAAK,CAACW,KACH,CAAC,eACPtB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACQ,cAAc,EAAEZ,KAAK,CAACa,mBAAmB;EAAE,gBAC9DxB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAA2B,IAAI;IACHX,KAAK,EAAE,CACLC,MAAM,CAACW,KAAK,EACZ;MACEC,KAAK,EAAEhB,KAAK,CAACgB;IACf,CAAC,EACDhB,KAAK,CAACiB,UAAU;EAChB,GAEDjB,KAAK,CAACe,KACH,CAAC,eACP1B,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAA2B,IAAI;IACHX,KAAK,EAAE,CACLC,MAAM,CAACc,QAAQ,EACf;MACEF,KAAK,EAAEhB,KAAK,CAACgB;IACf,CAAC,EACDhB,KAAK,CAACmB,aAAa;EACnB,GAEDnB,KAAK,CAACkB,QACH,CACF,CACF,CAAC;AAEX;AAEA,MAAMd,MAAM,GAAGgB,uBAAU,CAACC,MAAM,CAAC;EAC/BhB,SAAS,EAAE;IACTiB,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE;EACjB,CAAC;EACDV,KAAK,EAAE;IACLW,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE;EACb,CAAC;EACDX,QAAQ,EAAE;IACRQ,QAAQ,EAAE,EAAE;IACZG,SAAS,EAAE;EACb,CAAC;EACDpB,cAAc,EAAE;IACda,IAAI,EAAE,CAAC;IACPM,aAAa,EAAE9B,OAAO,GAAG,EAAE,GAAG,EAAE;IAChC0B,UAAU,EAAE,QAAQ;IACpB9B,KAAK,EAAE;EACT,CAAC;EACDkB,cAAc,EAAE;IACdkB,gBAAgB,EAAE;EACpB,CAAC;EACDtB,SAAS,EAAE;IACTiB,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","width","height","Dimensions","get","portrait","OnboardingPage","props","createElement","View","style","styles","container","containerStyle","swap","swapStyle","mirror","imageContainer","imageContainerStyle","image","titleContainer","titleContainerStyle","Text","title","color","titleStyle","subtitle","subtitleStyle","StyleSheet","create","flex","justifyContent","alignItems","flexDirection","fontSize","fontWeight","paddingBottom","textAlign","marginHorizontal","transform","scaleX"],"sourceRoot":"../../../src","sources":["components/Page.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAmB1B,MAAM;EAAEG,KAAK;EAAEC;AAAO,CAAC,GAAGC,uBAAU,CAACC,GAAG,CAAC,QAAQ,CAAC;AAClD,MAAMC,QAAQ,GAAGH,MAAM,GAAGD,KAAK;AAExB,SAASK,cAAcA,CAACC,KAAW,EAAE;EAC1C,oBACEX,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IACHC,KAAK,EAAE,CACLC,MAAM,CAACC,SAAS,EAChB;MAAEX,KAAK,EAAEM,KAAK,CAACN;IAAM,CAAC,EACtBM,KAAK,CAACM,cAAc,EACpBN,KAAK,CAACO,IAAI,IAAIH,MAAM,CAACI,SAAS,EAC9BR,KAAK,CAACS,MAAM,IAAIL,MAAM,CAACK,MAAM;EAC7B,gBAEFpB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACM,cAAc,EAAEV,KAAK,CAACW,mBAAmB;EAAE,GAC7DX,KAAK,CAACY,KACH,CAAC,eACPvB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACS,cAAc,EAAEb,KAAK,CAACc,mBAAmB;EAAE,gBAC9DzB,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAA4B,IAAI;IACHZ,KAAK,EAAE,CACLC,MAAM,CAACY,KAAK,EACZ;MACEC,KAAK,EAAEjB,KAAK,CAACiB;IACf,CAAC,EACDjB,KAAK,CAACkB,UAAU;EAChB,GAEDlB,KAAK,CAACgB,KACH,CAAC,eACP3B,MAAA,CAAAI,OAAA,CAAAQ,aAAA,CAACd,YAAA,CAAA4B,IAAI;IACHZ,KAAK,EAAE,CACLC,MAAM,CAACe,QAAQ,EACf;MACEF,KAAK,EAAEjB,KAAK,CAACiB;IACf,CAAC,EACDjB,KAAK,CAACoB,aAAa;EACnB,GAEDpB,KAAK,CAACmB,QACH,CACF,CACF,CAAC;AAEX;AAEA,MAAMf,MAAM,GAAGiB,uBAAU,CAACC,MAAM,CAAC;EAC/BjB,SAAS,EAAE;IACTkB,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE;EACjB,CAAC;EACDV,KAAK,EAAE;IACLW,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE;EACb,CAAC;EACDX,QAAQ,EAAE;IACRQ,QAAQ,EAAE,EAAE;IACZG,SAAS,EAAE;EACb,CAAC;EACDpB,cAAc,EAAE;IACda,IAAI,EAAE,CAAC;IACPM,aAAa,EAAE/B,QAAQ,GAAG,EAAE,GAAG,EAAE;IACjC2B,UAAU,EAAE,QAAQ;IACpB/B,KAAK,EAAE;EACT,CAAC;EACDmB,cAAc,EAAE;IACdkB,gBAAgB,EAAE;EACpB,CAAC;EACDvB,SAAS,EAAE;IACTkB,aAAa,EAAE;EACjB,CAAC;EACDjB,MAAM,EAAE;IACNuB,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;IAAE,CAAC;EAC5B;AACF,CAAC,CAAC","ignoreList":[]}
@@ -6,30 +6,63 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Pagination = Pagination;
7
7
  var _reactNative = require("react-native");
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _tinycolor = _interopRequireDefault(require("tinycolor2"));
9
10
  var _useOnboarding = require("../hooks/useOnboarding");
10
11
  var _button = require("./button");
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
12
14
  function Pagination(props) {
13
15
  const {
14
- isDone
16
+ isDone,
17
+ currentPage,
18
+ progress,
19
+ scrollTo,
20
+ previousPage
15
21
  } = (0, _useOnboarding.useOnboarding)();
16
22
  const dots = Array.from({
17
23
  length: props.numberOfScreens
18
24
  }, (_, i) => i);
19
25
  const width = props.width;
26
+ const showPrevious = props.showPrevious && currentPage > 0;
20
27
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
21
28
  style: [styles.pagination, {
22
29
  backgroundColor: props.backgroundColor
23
30
  }, props.paginationContainerStyle]
24
31
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
25
32
  style: [styles.buttons, styles.leftButton, props.buttonLeftContainerStyle]
26
- }, props.showSkip && !props.hasSkipPosition && /*#__PURE__*/_react.default.createElement(_button.Button, {
33
+ }, showPrevious && /*#__PURE__*/_react.default.createElement(_button.Button, {
34
+ onPress: () => previousPage(),
35
+ buttonTextStyle: props.previousLabelStyle,
36
+ buttonStyle: props.previousButtonContainerStyle,
37
+ label: props.previousLabel || 'Back'
38
+ }), !showPrevious && props.showSkip && !props.hasSkipPosition && /*#__PURE__*/_react.default.createElement(_button.Button, {
27
39
  onPress: props.onSkip,
28
40
  buttonTextStyle: props.skipLabelStyle,
29
41
  buttonStyle: props.skipButtonContainerStyle,
30
42
  label: props.skipLabel || 'Skip'
31
- })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
32
- style: styles.dotsContainer
43
+ })), props.paginationStyle === 'progress' ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
44
+ accessible: true,
45
+ accessibilityRole: "progressbar",
46
+ accessibilityValue: {
47
+ min: 0,
48
+ max: 100,
49
+ now: progress
50
+ },
51
+ style: [styles.progressTrack,
52
+ // Derive a faint track from the (background-aware) fill color so it
53
+ // stays visible on both light and dark pages.
54
+ {
55
+ backgroundColor: (0, _tinycolor.default)(props.color).setAlpha(0.25).toRgbString()
56
+ },
57
+ // Mirror the fill direction so it grows from the trailing edge.
58
+ props.mirror && styles.mirror, props.progressBarStyle]
59
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
60
+ style: [styles.progressFill, {
61
+ backgroundColor: props.color,
62
+ width: `${progress}%`
63
+ }, props.progressBarFillStyle]
64
+ })) : /*#__PURE__*/_react.default.createElement(_reactNative.View, {
65
+ style: [styles.dotsContainer, props.mirror && styles.mirror, props.dotsContainerStyle]
33
66
  }, dots.map((_, i) => {
34
67
  const inputRange = [(i - 1) * width, i * width, (i + 1) * width];
35
68
  const dotOpacity = props.animatedValue.interpolate({
@@ -37,13 +70,27 @@ function Pagination(props) {
37
70
  outputRange: [0.3, 1, 0.3],
38
71
  extrapolate: 'clamp'
39
72
  });
40
- return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
73
+ const dotProps = {
74
+ accessibilityRole: props.dotsAreTappable ? 'button' : 'image',
75
+ accessibilityLabel: `Page ${i + 1} of ${props.numberOfScreens}`,
76
+ accessibilityState: {
77
+ selected: i === currentPage
78
+ }
79
+ };
80
+ const dot = /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, {
41
81
  key: i,
42
82
  style: [styles.dot, {
43
83
  backgroundColor: props.color,
44
84
  opacity: dotOpacity
45
- }, props.dotsContainerStyle]
85
+ }]
46
86
  });
87
+ return props.dotsAreTappable ? /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, _extends({
88
+ key: i,
89
+ onPress: () => scrollTo(i),
90
+ hitSlop: 8
91
+ }, dotProps), dot) : /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({
92
+ key: i
93
+ }, dotProps), dot);
47
94
  })), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
48
95
  style: [styles.buttons, styles.rightButton, props.buttonRightContainerStyle]
49
96
  }, !isDone && props.showNext && /*#__PURE__*/_react.default.createElement(_button.Button, {
@@ -76,22 +123,37 @@ const styles = _reactNative.StyleSheet.create({
76
123
  },
77
124
  dotsContainer: {
78
125
  flexDirection: 'row',
79
- flex: 1,
80
- justifyContent: 'center'
126
+ flex: 2,
127
+ justifyContent: 'center',
128
+ alignItems: 'center'
129
+ },
130
+ progressTrack: {
131
+ flex: 2,
132
+ height: 6,
133
+ borderRadius: 3,
134
+ marginHorizontal: 16,
135
+ overflow: 'hidden'
136
+ },
137
+ progressFill: {
138
+ height: '100%',
139
+ borderRadius: 3
81
140
  },
82
141
  text: {
83
142
  fontSize: 16
84
143
  },
85
144
  buttons: {
86
- minWidth: 200
145
+ flex: 1
87
146
  },
88
147
  rightButton: {
89
- alignItems: 'flex-end',
90
- paddingRight: 30
148
+ alignItems: 'flex-end'
91
149
  },
92
150
  leftButton: {
93
- alignItems: 'flex-start',
94
- paddingLeft: 30
151
+ alignItems: 'flex-start'
152
+ },
153
+ mirror: {
154
+ transform: [{
155
+ scaleX: -1
156
+ }]
95
157
  }
96
158
  });
97
159
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","_useOnboarding","_button","e","__esModule","default","Pagination","props","isDone","useOnboarding","dots","Array","from","length","numberOfScreens","_","i","width","createElement","View","style","styles","pagination","backgroundColor","paginationContainerStyle","buttons","leftButton","buttonLeftContainerStyle","showSkip","hasSkipPosition","Button","onPress","onSkip","buttonTextStyle","skipLabelStyle","buttonStyle","skipButtonContainerStyle","label","skipLabel","dotsContainer","map","inputRange","dotOpacity","animatedValue","interpolate","outputRange","extrapolate","Animated","key","dot","color","opacity","dotsContainerStyle","rightButton","buttonRightContainerStyle","showNext","onNext","nextLabel","nextLabelStyle","nextButtonContainerStyle","showDone","onDone","doneLabel","doneLabelStyle","doneButtonContainerStyle","StyleSheet","create","flexDirection","justifyContent","alignItems","height","paddingVertical","paddingHorizontal","borderRadius","marginHorizontal","flex","text","fontSize","minWidth","paddingRight","paddingLeft"],"sourceRoot":"../../../src","sources":["components/Pagination.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","_tinycolor","_useOnboarding","_button","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","Pagination","props","isDone","currentPage","progress","scrollTo","previousPage","useOnboarding","dots","Array","from","numberOfScreens","_","i","width","showPrevious","createElement","View","style","styles","pagination","backgroundColor","paginationContainerStyle","buttons","leftButton","buttonLeftContainerStyle","Button","onPress","buttonTextStyle","previousLabelStyle","buttonStyle","previousButtonContainerStyle","label","previousLabel","showSkip","hasSkipPosition","onSkip","skipLabelStyle","skipButtonContainerStyle","skipLabel","paginationStyle","accessible","accessibilityRole","accessibilityValue","min","max","now","progressTrack","tinycolor","color","setAlpha","toRgbString","mirror","progressBarStyle","progressFill","progressBarFillStyle","dotsContainer","dotsContainerStyle","map","inputRange","dotOpacity","animatedValue","interpolate","outputRange","extrapolate","dotProps","dotsAreTappable","accessibilityLabel","accessibilityState","selected","dot","Animated","key","opacity","Pressable","hitSlop","rightButton","buttonRightContainerStyle","showNext","onNext","nextLabel","nextLabelStyle","nextButtonContainerStyle","showDone","onDone","doneLabel","doneLabelStyle","doneButtonContainerStyle","StyleSheet","create","flexDirection","justifyContent","alignItems","height","paddingVertical","paddingHorizontal","borderRadius","marginHorizontal","flex","overflow","text","fontSize","transform","scaleX"],"sourceRoot":"../../../src","sources":["components/Pagination.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,100 +10,73 @@ var _CustomPages = require("./CustomPages");
10
10
  var _reactNative = require("react-native");
11
11
  var _useOnboarding = require("../hooks/useOnboarding");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
13
14
  const Swiper = props => {
14
- const scrollX = _react.default.useRef(new _reactNative.Animated.Value(0)).current;
15
+ // `scrollX` is always JS-driven because the background-color interpolation
16
+ // cannot run on the native thread. When `useNativeDriver` is enabled we also
17
+ // keep `nativeScrollX`, driven natively, for transform/opacity animations
18
+ // (the pagination dots), and mirror its offset onto `scrollX` via a JS
19
+ // listener so the color interpolation keeps working.
20
+ const scrollX = _react.default.useMemo(() => new _reactNative.Animated.Value(0), []);
21
+ const nativeScrollX = _react.default.useMemo(() => new _reactNative.Animated.Value(0), []);
22
+ const nativeDriverEnabled = props.useNativeDriver ?? false;
23
+ const dotsAnimatedValue = nativeDriverEnabled ? nativeScrollX : scrollX;
24
+
25
+ // Direction handling: default to the device direction. We only mirror
26
+ // manually (via scaleX) when the requested direction differs from the
27
+ // device's — when they match, React Native already lays the row out
28
+ // correctly and an extra flip would double-invert it.
29
+ const rtl = props.rtl ?? _reactNative.I18nManager.isRTL;
30
+ const mirror = rtl !== _reactNative.I18nManager.isRTL;
15
31
  const {
16
- flatListRef,
32
+ setFlatListRef,
17
33
  setCurrentPage,
18
34
  currentPage,
19
35
  numberOfScreens,
20
36
  nextPage,
21
- scrollEnabled
37
+ scrollEnabled,
38
+ pauseAutoPlay
22
39
  } = (0, _useOnboarding.useOnboarding)();
40
+ const onScroll = _react.default.useMemo(() => nativeDriverEnabled ? _reactNative.Animated.event([{
41
+ nativeEvent: {
42
+ contentOffset: {
43
+ x: nativeScrollX
44
+ }
45
+ }
46
+ }], {
47
+ useNativeDriver: true,
48
+ listener: event => scrollX.setValue(event.nativeEvent.contentOffset.x)
49
+ }) : _reactNative.Animated.event([{
50
+ nativeEvent: {
51
+ contentOffset: {
52
+ x: scrollX
53
+ }
54
+ }
55
+ }], {
56
+ useNativeDriver: false
57
+ }), [nativeDriverEnabled, nativeScrollX, scrollX]);
58
+
59
+ // Stop autoplay as soon as the user takes manual control of the slider.
60
+ const onScrollBeginDrag = _react.default.useCallback(() => pauseAutoPlay(), [pauseAutoPlay]);
61
+ const shared = {
62
+ setFlatListRef,
63
+ scrollX,
64
+ dotsAnimatedValue,
65
+ onScroll,
66
+ onScrollBeginDrag,
67
+ setPage: setCurrentPage,
68
+ currentPage,
69
+ numberOfScreens,
70
+ nextPage,
71
+ scrollEnabled,
72
+ mirror
73
+ };
23
74
  if (props.children) {
24
- return /*#__PURE__*/_react.default.createElement(_CustomPages.CustomPages, {
25
- customFooter: props.customFooter,
26
- showPagination: props.showPagination,
27
- flatListRef: flatListRef,
28
- scrollX: scrollX,
29
- setPage: setCurrentPage,
30
- scrollEnabled: scrollEnabled,
31
- currentPage: currentPage,
32
- numberOfScreens: numberOfScreens,
33
- nextPage: nextPage,
34
- showDone: props.showDone,
35
- showNext: props.showNext,
36
- onDone: props.onDone,
37
- skipButtonContainerStyle: props.skipButtonContainerStyle,
38
- nextButtonContainerStyle: props.nextButtonContainerStyle,
39
- doneButtonContainerStyle: props.doneButtonContainerStyle,
40
- skipButtonPosition: props.skipButtonPosition,
41
- paginationContainerStyle: props.paginationContainerStyle,
42
- paginationPosition: props.paginationPosition,
43
- nextLabel: props.nextLabel,
44
- skipLabel: props.skipLabel,
45
- doneLabel: props.doneLabel,
46
- showSkip: props.showSkip,
47
- onSkip: props.onSkip,
48
- scrollAnimationDuration: props.scrollAnimationDuration,
49
- buttonLeftContainerStyle: props.buttonLeftContainerStyle,
50
- buttonRightContainerStyle: props.buttonRightContainerStyle,
51
- dotsContainerStyle: props.dotsContainerStyle,
52
- doneLabelStyle: props.doneLabelStyle,
53
- skipLabelStyle: props.skipLabelStyle,
54
- nextLabelStyle: props.nextLabelStyle,
55
- width: props.width,
56
- color: props.color,
57
- useNativeDriver: props.useNativeDriver,
58
- imageContainerStyle: props.imageContainerStyle,
59
- containerStyle: props.containerStyle,
60
- titleContainerStyle: props.titleContainerStyle,
61
- titleStyle: props.titleStyle,
62
- subtitleStyle: props.subtitleStyle,
63
- swap: props.swap
64
- }, props.children);
75
+ return /*#__PURE__*/_react.default.createElement(_CustomPages.CustomPages, _extends({}, props, shared), props.children);
65
76
  }
66
- return /*#__PURE__*/_react.default.createElement(_OnboardingPages.OnboardingPages, {
67
- showDone: props.showDone,
68
- customFooter: props.customFooter,
69
- flatListRef: flatListRef,
70
- scrollX: scrollX,
71
- setPage: setCurrentPage,
72
- currentPage: currentPage,
73
- paginationPosition: props.paginationPosition,
74
- nextPage: nextPage,
75
- showSkip: props.showSkip,
76
- onDone: props.onDone,
77
- pages: props.pages || [],
78
- width: props.width,
79
- showNext: props.showNext,
80
- skipButtonContainerStyle: props.skipButtonContainerStyle,
81
- nextButtonContainerStyle: props.nextButtonContainerStyle,
82
- doneButtonContainerStyle: props.doneButtonContainerStyle,
83
- skipLabelStyle: props.skipLabelStyle,
84
- skipButtonPosition: props.skipButtonPosition,
85
- showPagination: props.showPagination,
86
- color: props.color,
87
- onSkip: props.onSkip,
88
- swap: props.swap,
89
- scrollEnabled: scrollEnabled,
90
- nextLabel: props.nextLabel,
91
- skipLabel: props.skipLabel,
92
- doneLabel: props.doneLabel,
93
- scrollAnimationDuration: props.scrollAnimationDuration,
94
- buttonLeftContainerStyle: props.buttonLeftContainerStyle,
95
- buttonRightContainerStyle: props.buttonRightContainerStyle,
96
- dotsContainerStyle: props.dotsContainerStyle,
97
- doneLabelStyle: props.doneLabelStyle,
98
- nextLabelStyle: props.nextLabelStyle,
99
- useNativeDriver: props.useNativeDriver,
100
- imageContainerStyle: props.imageContainerStyle,
101
- containerStyle: props.containerStyle,
102
- titleContainerStyle: props.titleContainerStyle,
103
- titleStyle: props.titleStyle,
104
- subtitleStyle: props.subtitleStyle,
105
- paginationContainerStyle: props.paginationContainerStyle
106
- });
77
+ return /*#__PURE__*/_react.default.createElement(_OnboardingPages.OnboardingPages, _extends({}, props, shared, {
78
+ pages: props.pages || []
79
+ }));
107
80
  };
108
81
  exports.Swiper = Swiper;
109
82
  //# sourceMappingURL=Swiper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_OnboardingPages","_CustomPages","_reactNative","_useOnboarding","e","__esModule","default","Swiper","props","scrollX","React","useRef","Animated","Value","current","flatListRef","setCurrentPage","currentPage","numberOfScreens","nextPage","scrollEnabled","useOnboarding","children","createElement","CustomPages","customFooter","showPagination","setPage","showDone","showNext","onDone","skipButtonContainerStyle","nextButtonContainerStyle","doneButtonContainerStyle","skipButtonPosition","paginationContainerStyle","paginationPosition","nextLabel","skipLabel","doneLabel","showSkip","onSkip","scrollAnimationDuration","buttonLeftContainerStyle","buttonRightContainerStyle","dotsContainerStyle","doneLabelStyle","skipLabelStyle","nextLabelStyle","width","color","useNativeDriver","imageContainerStyle","containerStyle","titleContainerStyle","titleStyle","subtitleStyle","swap","OnboardingPages","pages","exports"],"sourceRoot":"../../../src","sources":["components/Swiper.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_OnboardingPages","_CustomPages","_reactNative","_useOnboarding","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","Swiper","props","scrollX","React","useMemo","Animated","Value","nativeScrollX","nativeDriverEnabled","useNativeDriver","dotsAnimatedValue","rtl","I18nManager","isRTL","mirror","setFlatListRef","setCurrentPage","currentPage","numberOfScreens","nextPage","scrollEnabled","pauseAutoPlay","useOnboarding","onScroll","event","nativeEvent","contentOffset","x","listener","setValue","onScrollBeginDrag","useCallback","shared","setPage","children","createElement","CustomPages","OnboardingPages","pages","exports"],"sourceRoot":"../../../src","sources":["components/Swiper.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,7 +10,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
10
10
  const Button = props => {
11
11
  return typeof props.label === 'string' ? /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
12
12
  onPress: props.onPress,
13
- style: props.buttonStyle
13
+ style: props.buttonStyle,
14
+ accessibilityRole: "button",
15
+ accessibilityLabel: props.label
14
16
  }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
15
17
  style: [styles.text, {
16
18
  color: props.color || 'white'
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","Button","props","label","createElement","TouchableOpacity","onPress","style","buttonStyle","Text","styles","text","color","buttonTextStyle","exports","SkipButton","top","left","position","undefined","right","skipButton","StyleSheet","create","pagination","flexDirection","justifyContent","alignItems","height","paddingVertical","paddingHorizontal","dot","width","borderRadius","backgroundColor","marginHorizontal","dotsContainer","flex","fontSize","buttons","minWidth","rightButton","paddingRight","leftButton","paddingLeft","zIndex"],"sourceRoot":"../../../src","sources":["components/button.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUnB,MAAMG,MAAM,GAAIC,KAAkB,IAAK;EAC5C,OAAO,OAAOA,KAAK,CAACC,KAAK,KAAK,QAAQ,gBACpCP,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACV,YAAA,CAAAW,gBAAgB;IAACC,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IAACC,KAAK,EAAEL,KAAK,CAACM;EAAY,gBACjEZ,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACV,YAAA,CAAAe,IAAI;IACHF,KAAK,EAAE,CACLG,MAAM,CAACC,IAAI,EACX;MACEC,KAAK,EAAEV,KAAK,CAACU,KAAK,IAAI;IACxB,CAAC,EACDV,KAAK,CAACW,eAAe;EACrB,GAEDX,KAAK,CAACC,KACH,CACU,CAAC,GAEnBD,KAAK,CAACC,KACP;AACH,CAAC;AAACW,OAAA,CAAAb,MAAA,GAAAA,MAAA;AAEK,MAAMc,UAAU,GACrBb,KAEC,IACE;EACH,MAAMM,WAAW,GAAG;IAClBQ,GAAG,EAAE,EAAE;IACPC,IAAI,EAAEf,KAAK,CAACgB,QAAQ,KAAK,UAAU,GAAG,EAAE,GAAGC,SAAS;IACpDC,KAAK,EAAElB,KAAK,CAACgB,QAAQ,KAAK,WAAW,GAAG,EAAE,GAAGC;EAC/C,CAAC;EAED,oBACEvB,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACH,MAAM;IACLE,KAAK,EAAED,KAAK,CAACC,KAAK,IAAI,MAAO;IAC7BG,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IACvBE,WAAW,EAAE,CAACE,MAAM,CAACW,UAAU,EAAEb,WAAW,EAAEN,KAAK,CAACM,WAAW,CAAE;IACjEK,eAAe,EAAEX,KAAK,CAACW,eAAgB;IACvCD,KAAK,EAAEV,KAAK,CAACU;EAAM,CACpB,CAAC;AAEN,CAAC;AAACE,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAEF,MAAML,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BC,UAAU,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,EAAE;IACVC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE;EACrB,CAAC;EACDC,GAAG,EAAE;IACHH,MAAM,EAAE,EAAE;IACVI,KAAK,EAAE,EAAE;IACTC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE,MAAM;IACvBC,gBAAgB,EAAE;EACpB,CAAC;EACDC,aAAa,EAAE;IACbX,aAAa,EAAE,KAAK;IACpBY,IAAI,EAAE,CAAC;IACPX,cAAc,EAAE;EAClB,CAAC;EACDf,IAAI,EAAE;IACJ2B,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXd,UAAU,EAAE,UAAU;IACtBe,YAAY,EAAE;EAChB,CAAC;EACDC,UAAU,EAAE;IACVhB,UAAU,EAAE,YAAY;IACxBiB,WAAW,EAAE;EACf,CAAC;EACDvB,UAAU,EAAE;IACVH,QAAQ,EAAE,UAAU;IACpB2B,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","Button","props","label","createElement","TouchableOpacity","onPress","style","buttonStyle","accessibilityRole","accessibilityLabel","Text","styles","text","color","buttonTextStyle","exports","SkipButton","top","left","position","undefined","right","skipButton","StyleSheet","create","pagination","flexDirection","justifyContent","alignItems","height","paddingVertical","paddingHorizontal","dot","width","borderRadius","backgroundColor","marginHorizontal","dotsContainer","flex","fontSize","buttons","minWidth","rightButton","paddingRight","leftButton","paddingLeft","zIndex"],"sourceRoot":"../../../src","sources":["components/button.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAQA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUnB,MAAMG,MAAM,GAAIC,KAAkB,IAAK;EAC5C,OAAO,OAAOA,KAAK,CAACC,KAAK,KAAK,QAAQ,gBACpCP,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACV,YAAA,CAAAW,gBAAgB;IACfC,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IACvBC,KAAK,EAAEL,KAAK,CAACM,WAAY;IACzBC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAER,KAAK,CAACC;EAAM,gBAEhCP,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACV,YAAA,CAAAiB,IAAI;IACHJ,KAAK,EAAE,CACLK,MAAM,CAACC,IAAI,EACX;MACEC,KAAK,EAAEZ,KAAK,CAACY,KAAK,IAAI;IACxB,CAAC,EACDZ,KAAK,CAACa,eAAe;EACrB,GAEDb,KAAK,CAACC,KACH,CACU,CAAC,GAEnBD,KAAK,CAACC,KACP;AACH,CAAC;AAACa,OAAA,CAAAf,MAAA,GAAAA,MAAA;AAEK,MAAMgB,UAAU,GACrBf,KAEC,IACE;EACH,MAAMM,WAAW,GAAG;IAClBU,GAAG,EAAE,EAAE;IACPC,IAAI,EAAEjB,KAAK,CAACkB,QAAQ,KAAK,UAAU,GAAG,EAAE,GAAGC,SAAS;IACpDC,KAAK,EAAEpB,KAAK,CAACkB,QAAQ,KAAK,WAAW,GAAG,EAAE,GAAGC;EAC/C,CAAC;EAED,oBACEzB,MAAA,CAAAI,OAAA,CAAAI,aAAA,CAACH,MAAM;IACLE,KAAK,EAAED,KAAK,CAACC,KAAK,IAAI,MAAO;IAC7BG,OAAO,EAAEJ,KAAK,CAACI,OAAQ;IACvBE,WAAW,EAAE,CAACI,MAAM,CAACW,UAAU,EAAEf,WAAW,EAAEN,KAAK,CAACM,WAAW,CAAE;IACjEO,eAAe,EAAEb,KAAK,CAACa,eAAgB;IACvCD,KAAK,EAAEZ,KAAK,CAACY;EAAM,CACpB,CAAC;AAEN,CAAC;AAACE,OAAA,CAAAC,UAAA,GAAAA,UAAA;AAEF,MAAML,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BC,UAAU,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,EAAE;IACVC,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE;EACrB,CAAC;EACDC,GAAG,EAAE;IACHH,MAAM,EAAE,EAAE;IACVI,KAAK,EAAE,EAAE;IACTC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE,MAAM;IACvBC,gBAAgB,EAAE;EACpB,CAAC;EACDC,aAAa,EAAE;IACbX,aAAa,EAAE,KAAK;IACpBY,IAAI,EAAE,CAAC;IACPX,cAAc,EAAE;EAClB,CAAC;EACDf,IAAI,EAAE;IACJ2B,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IACPC,QAAQ,EAAE;EACZ,CAAC;EACDC,WAAW,EAAE;IACXd,UAAU,EAAE,UAAU;IACtBe,YAAY,EAAE;EAChB,CAAC;EACDC,UAAU,EAAE;IACVhB,UAAU,EAAE,YAAY;IACxBiB,WAAW,EAAE;EACf,CAAC;EACDvB,UAAU,EAAE;IACVH,QAAQ,EAAE,UAAU;IACpB2B,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -10,10 +10,16 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
10
10
  const OnboardingContext = exports.OnboardingContext = /*#__PURE__*/_react.default.createContext(undefined);
11
11
  const OnboardingProvider = ({
12
12
  children,
13
- width = _reactNative.Dimensions.get('window').width,
13
+ width: widthProp,
14
14
  numberOfScreens,
15
- scrollEnabled
15
+ scrollEnabled,
16
+ onPageChange,
17
+ scrollAnimationDuration,
18
+ autoPlay = false,
19
+ autoPlayInterval = 3000,
20
+ loop = false
16
21
  }) => {
22
+ const width = widthProp ?? _reactNative.Dimensions.get('window').width;
17
23
  const getProgress = page => {
18
24
  return Math.round((page + 1) / numberOfScreens * 100);
19
25
  };
@@ -22,40 +28,114 @@ const OnboardingProvider = ({
22
28
  const [isDone, setIsDone] = _react.default.useState(false);
23
29
  const [enableScroll, setEnableScroll] = _react.default.useState(scrollEnabled);
24
30
  const flatListRef = _react.default.useRef(null);
25
- const setCurrentPage = index => {
26
- setPage(index);
27
- setProgress(getProgress(index));
28
- setIsDone(index === numberOfScreens - 1);
29
- };
30
- const nextPage = (animated = true) => {
31
- if (flatListRef.current && currentPage < numberOfScreens - 1) {
32
- flatListRef.current.scrollToOffset({
33
- offset: width * (currentPage + 1),
34
- animated: animated
31
+ const setFlatListRef = _react.default.useCallback(node => {
32
+ flatListRef.current = node;
33
+ }, []);
34
+ // Tracks the latest page so timers/animations read a fresh value without
35
+ // needing to be recreated on every page change.
36
+ const currentPageRef = _react.default.useRef(0);
37
+ const [isAutoPlaying, setIsAutoPlaying] = _react.default.useState(autoPlay);
38
+
39
+ // Keep autoplay in sync if the `autoPlay` prop is toggled after mount.
40
+ _react.default.useEffect(() => {
41
+ setIsAutoPlaying(autoPlay);
42
+ }, [autoPlay]);
43
+
44
+ // Dedicated value used to honor a custom scrollAnimationDuration. FlatList's
45
+ // own animated scroll has a fixed, platform-controlled duration, so when a
46
+ // duration is requested we drive the offset manually via this value.
47
+ const scrollAnim = _react.default.useMemo(() => new _reactNative.Animated.Value(0), []);
48
+ _react.default.useEffect(() => {
49
+ const id = scrollAnim.addListener(({
50
+ value
51
+ }) => {
52
+ var _flatListRef$current;
53
+ (_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 || _flatListRef$current.scrollToOffset({
54
+ offset: value,
55
+ animated: false
35
56
  });
36
- setCurrentPage(currentPage + 1);
37
- }
38
- };
39
- const scrollTo = (index, animated = true) => {
40
- if (flatListRef.current && index >= 0) {
57
+ });
58
+ return () => scrollAnim.removeListener(id);
59
+ }, [scrollAnim]);
60
+ const animateToOffset = _react.default.useCallback((offset, animated) => {
61
+ if (!flatListRef.current) return;
62
+ if (animated && scrollAnimationDuration) {
63
+ scrollAnim.stopAnimation();
64
+ scrollAnim.setValue(width * currentPageRef.current);
65
+ _reactNative.Animated.timing(scrollAnim, {
66
+ toValue: offset,
67
+ duration: scrollAnimationDuration,
68
+ useNativeDriver: false
69
+ }).start();
70
+ } else {
41
71
  flatListRef.current.scrollToOffset({
42
- offset: index * width,
43
- animated: animated
72
+ offset,
73
+ animated
44
74
  });
75
+ }
76
+ }, [scrollAnim, scrollAnimationDuration, width]);
77
+ const setCurrentPage = _react.default.useCallback(index => {
78
+ setPage(index);
79
+ currentPageRef.current = index;
80
+ setProgress(Math.round((index + 1) / numberOfScreens * 100));
81
+ setIsDone(index === numberOfScreens - 1);
82
+ onPageChange === null || onPageChange === void 0 || onPageChange(index);
83
+ // No-op when no screen reader is active; announces the page otherwise.
84
+ _reactNative.AccessibilityInfo.announceForAccessibility(`Page ${index + 1} of ${numberOfScreens}`);
85
+ }, [numberOfScreens, onPageChange]);
86
+ const nextPage = _react.default.useCallback((animated = true) => {
87
+ const current = currentPageRef.current;
88
+ if (current < numberOfScreens - 1) {
89
+ animateToOffset(width * (current + 1), animated);
90
+ setCurrentPage(current + 1);
91
+ } else if (loop) {
92
+ animateToOffset(0, animated);
93
+ setCurrentPage(0);
94
+ }
95
+ }, [numberOfScreens, loop, width, animateToOffset, setCurrentPage]);
96
+ const previousPage = _react.default.useCallback((animated = true) => {
97
+ const current = currentPageRef.current;
98
+ if (current > 0) {
99
+ animateToOffset(width * (current - 1), animated);
100
+ setCurrentPage(current - 1);
101
+ } else if (loop) {
102
+ animateToOffset(width * (numberOfScreens - 1), animated);
103
+ setCurrentPage(numberOfScreens - 1);
104
+ }
105
+ }, [numberOfScreens, loop, width, animateToOffset, setCurrentPage]);
106
+ const scrollTo = _react.default.useCallback((index, animated = true) => {
107
+ if (index >= 0 && index < numberOfScreens) {
108
+ animateToOffset(index * width, animated);
45
109
  setCurrentPage(index);
46
110
  }
47
- };
111
+ }, [numberOfScreens, width, animateToOffset, setCurrentPage]);
112
+ const pauseAutoPlay = _react.default.useCallback(() => setIsAutoPlaying(false), []);
113
+ const resumeAutoPlay = _react.default.useCallback(() => setIsAutoPlaying(autoPlay), [autoPlay]);
114
+
115
+ // Autoplay timer. Recreated whenever the page changes so it always advances
116
+ // from the current position; pauses when the user interacts with the slider.
117
+ _react.default.useEffect(() => {
118
+ if (!isAutoPlaying || numberOfScreens <= 1) return;
119
+ if (!loop && currentPage >= numberOfScreens - 1) return;
120
+ const timer = setTimeout(() => nextPage(true), autoPlayInterval);
121
+ return () => clearTimeout(timer);
122
+ }, [isAutoPlaying, currentPage, numberOfScreens, autoPlayInterval, loop, nextPage]);
48
123
  const contextValue = {
49
124
  scrollEnabled: enableScroll,
50
125
  enableScroll: setEnableScroll,
126
+ width,
51
127
  currentPage,
52
128
  numberOfScreens,
53
129
  nextPage,
130
+ previousPage,
54
131
  setCurrentPage,
55
132
  flatListRef,
133
+ setFlatListRef,
56
134
  scrollTo,
57
135
  progress,
58
- isDone
136
+ isDone,
137
+ pauseAutoPlay,
138
+ resumeAutoPlay
59
139
  };
60
140
  return /*#__PURE__*/_react.default.createElement(OnboardingContext.Provider, {
61
141
  value: contextValue