react-native-app-onboard 0.2.1 → 0.3.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 (42) hide show
  1. package/README.md +5 -0
  2. package/lib/commonjs/components/CustomPages.js.map +1 -1
  3. package/lib/commonjs/components/OnboardingPages.js +41 -6
  4. package/lib/commonjs/components/OnboardingPages.js.map +1 -1
  5. package/lib/commonjs/components/Page.js.map +1 -1
  6. package/lib/commonjs/components/Pagination.js +2 -0
  7. package/lib/commonjs/components/Pagination.js.map +1 -1
  8. package/lib/commonjs/components/Swiper.js +18 -1
  9. package/lib/commonjs/components/Swiper.js.map +1 -1
  10. package/lib/commonjs/components/button.js +10 -3
  11. package/lib/commonjs/components/button.js.map +1 -1
  12. package/lib/module/components/CustomPages.js.map +1 -1
  13. package/lib/module/components/OnboardingPages.js +42 -7
  14. package/lib/module/components/OnboardingPages.js.map +1 -1
  15. package/lib/module/components/Page.js.map +1 -1
  16. package/lib/module/components/Pagination.js +2 -0
  17. package/lib/module/components/Pagination.js.map +1 -1
  18. package/lib/module/components/Swiper.js +18 -1
  19. package/lib/module/components/Swiper.js.map +1 -1
  20. package/lib/module/components/button.js +10 -3
  21. package/lib/module/components/button.js.map +1 -1
  22. package/lib/typescript/src/components/CustomPages.d.ts +1 -0
  23. package/lib/typescript/src/components/CustomPages.d.ts.map +1 -1
  24. package/lib/typescript/src/components/OnboardingPages.d.ts +1 -0
  25. package/lib/typescript/src/components/OnboardingPages.d.ts.map +1 -1
  26. package/lib/typescript/src/components/Page.d.ts +16 -0
  27. package/lib/typescript/src/components/Page.d.ts.map +1 -1
  28. package/lib/typescript/src/components/Pagination.d.ts +2 -0
  29. package/lib/typescript/src/components/Pagination.d.ts.map +1 -1
  30. package/lib/typescript/src/components/Swiper.d.ts.map +1 -1
  31. package/lib/typescript/src/components/button.d.ts +1 -0
  32. package/lib/typescript/src/components/button.d.ts.map +1 -1
  33. package/lib/typescript/src/types/index.d.ts +5 -0
  34. package/lib/typescript/src/types/index.d.ts.map +1 -1
  35. package/package.json +1 -1
  36. package/src/components/CustomPages.tsx +1 -0
  37. package/src/components/OnboardingPages.tsx +61 -5
  38. package/src/components/Page.tsx +16 -0
  39. package/src/components/Pagination.tsx +4 -0
  40. package/src/components/Swiper.tsx +14 -0
  41. package/src/components/button.tsx +8 -2
  42. package/src/types/index.ts +5 -0
@@ -25,6 +25,7 @@ export function Pagination(props) {
25
25
  style: [styles.buttons, styles.leftButton, props.buttonLeftContainerStyle]
26
26
  }, showPrevious && /*#__PURE__*/React.createElement(Button, {
27
27
  onPress: () => previousPage(),
28
+ disabled: props.previousDisabled,
28
29
  buttonTextStyle: props.previousLabelStyle,
29
30
  buttonStyle: props.previousButtonContainerStyle,
30
31
  label: props.previousLabel || 'Back'
@@ -88,6 +89,7 @@ export function Pagination(props) {
88
89
  style: [styles.buttons, styles.rightButton, props.buttonRightContainerStyle]
89
90
  }, !isDone && props.showNext && /*#__PURE__*/React.createElement(Button, {
90
91
  onPress: props.onNext,
92
+ disabled: props.nextDisabled,
91
93
  label: props.nextLabel || 'Next',
92
94
  buttonTextStyle: props.nextLabelStyle,
93
95
  buttonStyle: props.nextButtonContainerStyle
@@ -1 +1 @@
1
- {"version":3,"names":["View","Pressable","Animated","StyleSheet","React","setAlpha","useOnboarding","Button","Pagination","props","isDone","currentPage","progress","scrollTo","previousPage","dots","Array","from","length","numberOfScreens","_","i","width","showPrevious","createElement","style","styles","pagination","backgroundColor","paginationContainerStyle","buttons","leftButton","buttonLeftContainerStyle","onPress","buttonTextStyle","previousLabelStyle","buttonStyle","previousButtonContainerStyle","label","previousLabel","showSkip","hasSkipPosition","onSkip","skipLabelStyle","skipButtonContainerStyle","skipLabel","paginationStyle","accessible","accessibilityRole","accessibilityValue","min","max","now","progressTrack","color","mirror","progressBarStyle","progressFill","progressBarFillStyle","dotsContainer","dotsContainerStyle","map","inputRange","dotOpacity","animatedValue","interpolate","outputRange","extrapolate","dotProps","dotsAreTappable","accessibilityLabel","accessibilityState","selected","dot","key","opacity","_extends","hitSlop","rightButton","buttonRightContainerStyle","showNext","onNext","nextLabel","nextLabelStyle","nextButtonContainerStyle","showDone","onDone","doneLabel","doneLabelStyle","doneButtonContainerStyle","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":[]}
1
+ {"version":3,"names":["View","Pressable","Animated","StyleSheet","React","setAlpha","useOnboarding","Button","Pagination","props","isDone","currentPage","progress","scrollTo","previousPage","dots","Array","from","length","numberOfScreens","_","i","width","showPrevious","createElement","style","styles","pagination","backgroundColor","paginationContainerStyle","buttons","leftButton","buttonLeftContainerStyle","onPress","disabled","previousDisabled","buttonTextStyle","previousLabelStyle","buttonStyle","previousButtonContainerStyle","label","previousLabel","showSkip","hasSkipPosition","onSkip","skipLabelStyle","skipButtonContainerStyle","skipLabel","paginationStyle","accessible","accessibilityRole","accessibilityValue","min","max","now","progressTrack","color","mirror","progressBarStyle","progressFill","progressBarFillStyle","dotsContainer","dotsContainerStyle","map","inputRange","dotOpacity","animatedValue","interpolate","outputRange","extrapolate","dotProps","dotsAreTappable","accessibilityLabel","accessibilityState","selected","dot","key","opacity","_extends","hitSlop","rightButton","buttonRightContainerStyle","showNext","onNext","nextDisabled","nextLabel","nextLabelStyle","nextButtonContainerStyle","showDone","onDone","doneLabel","doneLabelStyle","doneButtonContainerStyle","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":[]}
@@ -27,9 +27,24 @@ export const Swiper = props => {
27
27
  currentPage,
28
28
  numberOfScreens,
29
29
  nextPage,
30
+ scrollTo,
30
31
  scrollEnabled,
31
32
  pauseAutoPlay
32
33
  } = useOnboarding();
34
+
35
+ // When `skipToPage` is set, "Skip" navigates within the flow instead of
36
+ // exiting it (so `onSkip` is not called in that case).
37
+ const {
38
+ skipToPage,
39
+ onSkip
40
+ } = props;
41
+ const handleSkip = React.useCallback(() => {
42
+ if (skipToPage != null) {
43
+ scrollTo(skipToPage);
44
+ } else {
45
+ onSkip === null || onSkip === void 0 || onSkip();
46
+ }
47
+ }, [skipToPage, scrollTo, onSkip]);
33
48
  const onScroll = React.useMemo(() => nativeDriverEnabled ? Animated.event([{
34
49
  nativeEvent: {
35
50
  contentOffset: {
@@ -61,8 +76,10 @@ export const Swiper = props => {
61
76
  currentPage,
62
77
  numberOfScreens,
63
78
  nextPage,
79
+ scrollTo,
64
80
  scrollEnabled,
65
- mirror
81
+ mirror,
82
+ onSkip: handleSkip
66
83
  };
67
84
  if (props.children) {
68
85
  return /*#__PURE__*/React.createElement(CustomPages, _extends({}, props, shared), props.children);
@@ -1 +1 @@
1
- {"version":3,"names":["React","OnboardingPages","CustomPages","Animated","I18nManager","useOnboarding","Swiper","props","scrollX","useMemo","Value","nativeScrollX","nativeDriverEnabled","useNativeDriver","dotsAnimatedValue","rtl","isRTL","mirror","setFlatListRef","setCurrentPage","currentPage","numberOfScreens","nextPage","scrollEnabled","pauseAutoPlay","onScroll","event","nativeEvent","contentOffset","x","listener","setValue","onScrollBeginDrag","useCallback","shared","setPage","children","createElement","_extends","pages"],"sourceRoot":"../../../src","sources":["components/Swiper.tsx"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,QAAQ,EACRC,WAAW,QAGN,cAAc;AACrB,SAASC,aAAa,QAAQ,wBAAwB;AAGtD,OAAO,MAAMC,MAAiC,GAAIC,KAAK,IAAK;EAC1D;EACA;EACA;EACA;EACA;EACA,MAAMC,OAAO,GAAGR,KAAK,CAACS,OAAO,CAAC,MAAM,IAAIN,QAAQ,CAACO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EAC9D,MAAMC,aAAa,GAAGX,KAAK,CAACS,OAAO,CAAC,MAAM,IAAIN,QAAQ,CAACO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;EACpE,MAAME,mBAAmB,GAAGL,KAAK,CAACM,eAAe,IAAI,KAAK;EAC1D,MAAMC,iBAAiB,GAAGF,mBAAmB,GAAGD,aAAa,GAAGH,OAAO;;EAEvE;EACA;EACA;EACA;EACA,MAAMO,GAAG,GAAGR,KAAK,CAACQ,GAAG,IAAIX,WAAW,CAACY,KAAK;EAC1C,MAAMC,MAAM,GAAGF,GAAG,KAAKX,WAAW,CAACY,KAAK;EAExC,MAAM;IACJE,cAAc;IACdC,cAAc;IACdC,WAAW;IACXC,eAAe;IACfC,QAAQ;IACRC,aAAa;IACbC;EACF,CAAC,GAAGnB,aAAa,CAAC,CAAC;EAEnB,MAAMoB,QAAQ,GAAGzB,KAAK,CAACS,OAAO,CAC5B,MACEG,mBAAmB,GACfT,QAAQ,CAACuB,KAAK,CACZ,CAAC;IAAEC,WAAW,EAAE;MAAEC,aAAa,EAAE;QAAEC,CAAC,EAAElB;MAAc;IAAE;EAAE,CAAC,CAAC,EAC1D;IACEE,eAAe,EAAE,IAAI;IACrBiB,QAAQ,EAAGJ,KAA8C,IACvDlB,OAAO,CAACuB,QAAQ,CAACL,KAAK,CAACC,WAAW,CAACC,aAAa,CAACC,CAAC;EACtD,CACF,CAAC,GACD1B,QAAQ,CAACuB,KAAK,CAAC,CAAC;IAAEC,WAAW,EAAE;MAAEC,aAAa,EAAE;QAAEC,CAAC,EAAErB;MAAQ;IAAE;EAAE,CAAC,CAAC,EAAE;IACnEK,eAAe,EAAE;EACnB,CAAC,CAAC,EACR,CAACD,mBAAmB,EAAED,aAAa,EAAEH,OAAO,CAC9C,CAAC;;EAED;EACA,MAAMwB,iBAAiB,GAAGhC,KAAK,CAACiC,WAAW,CACzC,MAAMT,aAAa,CAAC,CAAC,EACrB,CAACA,aAAa,CAChB,CAAC;EAED,MAAMU,MAAM,GAAG;IACbhB,cAAc;IACdV,OAAO;IACPM,iBAAiB;IACjBW,QAAQ;IACRO,iBAAiB;IACjBG,OAAO,EAAEhB,cAAc;IACvBC,WAAW;IACXC,eAAe;IACfC,QAAQ;IACRC,aAAa;IACbN;EACF,CAAC;EAED,IAAIV,KAAK,CAAC6B,QAAQ,EAAE;IAClB,oBACEpC,KAAA,CAAAqC,aAAA,CAACnC,WAAW,EAAAoC,QAAA,KAAK/B,KAAK,EAAM2B,MAAM,GAC/B3B,KAAK,CAAC6B,QACI,CAAC;EAElB;EAEA,oBAAOpC,KAAA,CAAAqC,aAAA,CAACpC,eAAe,EAAAqC,QAAA,KAAK/B,KAAK,EAAM2B,MAAM;IAAEK,KAAK,EAAEhC,KAAK,CAACgC,KAAK,IAAI;EAAG,EAAE,CAAC;AAC7E,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","OnboardingPages","CustomPages","Animated","I18nManager","useOnboarding","Swiper","props","scrollX","useMemo","Value","nativeScrollX","nativeDriverEnabled","useNativeDriver","dotsAnimatedValue","rtl","isRTL","mirror","setFlatListRef","setCurrentPage","currentPage","numberOfScreens","nextPage","scrollTo","scrollEnabled","pauseAutoPlay","skipToPage","onSkip","handleSkip","useCallback","onScroll","event","nativeEvent","contentOffset","x","listener","setValue","onScrollBeginDrag","shared","setPage","children","createElement","_extends","pages"],"sourceRoot":"../../../src","sources":["components/Swiper.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,10 +2,14 @@ import { StyleSheet, Text, TouchableOpacity } from 'react-native';
2
2
  import React from 'react';
3
3
  export const Button = props => {
4
4
  return typeof props.label === 'string' ? /*#__PURE__*/React.createElement(TouchableOpacity, {
5
- onPress: props.onPress,
6
- style: props.buttonStyle,
5
+ onPress: props.disabled ? undefined : props.onPress,
6
+ disabled: props.disabled,
7
+ style: [props.buttonStyle, props.disabled && styles.disabled],
7
8
  accessibilityRole: "button",
8
- accessibilityLabel: props.label
9
+ accessibilityLabel: props.label,
10
+ accessibilityState: {
11
+ disabled: !!props.disabled
12
+ }
9
13
  }, /*#__PURE__*/React.createElement(Text, {
10
14
  style: [styles.text, {
11
15
  color: props.color || 'white'
@@ -64,6 +68,9 @@ const styles = StyleSheet.create({
64
68
  skipButton: {
65
69
  position: 'absolute',
66
70
  zIndex: 10
71
+ },
72
+ disabled: {
73
+ opacity: 0.4
67
74
  }
68
75
  });
69
76
  //# sourceMappingURL=button.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","Text","TouchableOpacity","React","Button","props","label","createElement","onPress","style","buttonStyle","accessibilityRole","accessibilityLabel","styles","text","color","buttonTextStyle","SkipButton","top","left","position","undefined","right","skipButton","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,SACEA,UAAU,EACVC,IAAI,EACJC,gBAAgB,QAIX,cAAc;AACrB,OAAOC,KAAK,MAAM,OAAO;AAUzB,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAC5C,OAAO,OAAOA,KAAK,CAACC,KAAK,KAAK,QAAQ,gBACpCH,KAAA,CAAAI,aAAA,CAACL,gBAAgB;IACfM,OAAO,EAAEH,KAAK,CAACG,OAAQ;IACvBC,KAAK,EAAEJ,KAAK,CAACK,WAAY;IACzBC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEP,KAAK,CAACC;EAAM,gBAEhCH,KAAA,CAAAI,aAAA,CAACN,IAAI;IACHQ,KAAK,EAAE,CACLI,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;AAED,OAAO,MAAMW,UAAU,GACrBZ,KAEC,IACE;EACH,MAAMK,WAAW,GAAG;IAClBQ,GAAG,EAAE,EAAE;IACPC,IAAI,EAAEd,KAAK,CAACe,QAAQ,KAAK,UAAU,GAAG,EAAE,GAAGC,SAAS;IACpDC,KAAK,EAAEjB,KAAK,CAACe,QAAQ,KAAK,WAAW,GAAG,EAAE,GAAGC;EAC/C,CAAC;EAED,oBACElB,KAAA,CAAAI,aAAA,CAACH,MAAM;IACLE,KAAK,EAAED,KAAK,CAACC,KAAK,IAAI,MAAO;IAC7BE,OAAO,EAAEH,KAAK,CAACG,OAAQ;IACvBE,WAAW,EAAE,CAACG,MAAM,CAACU,UAAU,EAAEb,WAAW,EAAEL,KAAK,CAACK,WAAW,CAAE;IACjEM,eAAe,EAAEX,KAAK,CAACW,eAAgB;IACvCD,KAAK,EAAEV,KAAK,CAACU;EAAM,CACpB,CAAC;AAEN,CAAC;AAED,MAAMF,MAAM,GAAGb,UAAU,CAACwB,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;EACDb,IAAI,EAAE;IACJyB,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;EACDtB,UAAU,EAAE;IACVH,QAAQ,EAAE,UAAU;IACpB0B,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","Text","TouchableOpacity","React","Button","props","label","createElement","onPress","disabled","undefined","style","buttonStyle","styles","accessibilityRole","accessibilityLabel","accessibilityState","text","color","buttonTextStyle","SkipButton","top","left","position","right","skipButton","create","pagination","flexDirection","justifyContent","alignItems","height","paddingVertical","paddingHorizontal","dot","width","borderRadius","backgroundColor","marginHorizontal","dotsContainer","flex","fontSize","buttons","minWidth","rightButton","paddingRight","leftButton","paddingLeft","zIndex","opacity"],"sourceRoot":"../../../src","sources":["components/button.tsx"],"mappings":"AAAA,SACEA,UAAU,EACVC,IAAI,EACJC,gBAAgB,QAIX,cAAc;AACrB,OAAOC,KAAK,MAAM,OAAO;AAWzB,OAAO,MAAMC,MAAM,GAAIC,KAAkB,IAAK;EAC5C,OAAO,OAAOA,KAAK,CAACC,KAAK,KAAK,QAAQ,gBACpCH,KAAA,CAAAI,aAAA,CAACL,gBAAgB;IACfM,OAAO,EAAEH,KAAK,CAACI,QAAQ,GAAGC,SAAS,GAAGL,KAAK,CAACG,OAAQ;IACpDC,QAAQ,EAAEJ,KAAK,CAACI,QAAS;IACzBE,KAAK,EAAE,CAACN,KAAK,CAACO,WAAW,EAAEP,KAAK,CAACI,QAAQ,IAAII,MAAM,CAACJ,QAAQ,CAAE;IAC9DK,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEV,KAAK,CAACC,KAAM;IAChCU,kBAAkB,EAAE;MAAEP,QAAQ,EAAE,CAAC,CAACJ,KAAK,CAACI;IAAS;EAAE,gBAEnDN,KAAA,CAAAI,aAAA,CAACN,IAAI;IACHU,KAAK,EAAE,CACLE,MAAM,CAACI,IAAI,EACX;MACEC,KAAK,EAAEb,KAAK,CAACa,KAAK,IAAI;IACxB,CAAC,EACDb,KAAK,CAACc,eAAe;EACrB,GAEDd,KAAK,CAACC,KACH,CACU,CAAC,GAEnBD,KAAK,CAACC,KACP;AACH,CAAC;AAED,OAAO,MAAMc,UAAU,GACrBf,KAEC,IACE;EACH,MAAMO,WAAW,GAAG;IAClBS,GAAG,EAAE,EAAE;IACPC,IAAI,EAAEjB,KAAK,CAACkB,QAAQ,KAAK,UAAU,GAAG,EAAE,GAAGb,SAAS;IACpDc,KAAK,EAAEnB,KAAK,CAACkB,QAAQ,KAAK,WAAW,GAAG,EAAE,GAAGb;EAC/C,CAAC;EAED,oBACEP,KAAA,CAAAI,aAAA,CAACH,MAAM;IACLE,KAAK,EAAED,KAAK,CAACC,KAAK,IAAI,MAAO;IAC7BE,OAAO,EAAEH,KAAK,CAACG,OAAQ;IACvBI,WAAW,EAAE,CAACC,MAAM,CAACY,UAAU,EAAEb,WAAW,EAAEP,KAAK,CAACO,WAAW,CAAE;IACjEO,eAAe,EAAEd,KAAK,CAACc,eAAgB;IACvCD,KAAK,EAAEb,KAAK,CAACa;EAAM,CACpB,CAAC;AAEN,CAAC;AAED,MAAML,MAAM,GAAGb,UAAU,CAAC0B,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;EACDZ,IAAI,EAAE;IACJwB,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;EACDtB,UAAU,EAAE;IACVF,QAAQ,EAAE,UAAU;IACpByB,MAAM,EAAE;EACV,CAAC;EACDvC,QAAQ,EAAE;IACRwC,OAAO,EAAE;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -11,6 +11,7 @@ type CustomPagesProps = OnboardingProps & {
11
11
  onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
12
12
  onScrollBeginDrag: () => void;
13
13
  nextPage: () => void;
14
+ scrollTo: (index: number, animated?: boolean) => void;
14
15
  numberOfScreens: number;
15
16
  mirror?: boolean;
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CustomPages.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomPages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAER,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,KAAK,gBAAgB,GAAG,eAAe,GAAG;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IAGxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,2CAIrB,gBAAgB,sBAiGlB,CAAC"}
1
+ {"version":3,"file":"CustomPages.d.ts","sourceRoot":"","sources":["../../../../src/components/CustomPages.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAER,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,KAAK,gBAAgB,GAAG,eAAe,GAAG;IACxC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,MAAM,CAAC;IAGxB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,2CAIrB,gBAAgB,sBAiGlB,CAAC"}
@@ -12,6 +12,7 @@ type Props = OnboardingProps & {
12
12
  onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
13
13
  onScrollBeginDrag: () => void;
14
14
  nextPage: () => void;
15
+ scrollTo: (index: number, animated?: boolean) => void;
15
16
  mirror?: boolean;
16
17
  };
17
18
  export declare const OnboardingPages: ({ showPagination, showNext, ...props }: Props) => React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingPages.d.ts","sourceRoot":"","sources":["../../../../src/components/OnboardingPages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EACL,QAAQ,EAGR,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,KAAK,KAAK,GAAG,eAAe,GAAG;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,2CAIzB,KAAK,sBAmIP,CAAC"}
1
+ {"version":3,"file":"OnboardingPages.d.ts","sourceRoot":"","sources":["../../../../src/components/OnboardingPages.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,EACL,QAAQ,EAIR,QAAQ,EACR,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAkB,KAAK,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhD,KAAK,KAAK,GAAG,eAAe,GAAG;IAC7B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;IACxB,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,eAAe,2CAIzB,KAAK,sBAyLP,CAAC"}
@@ -5,6 +5,12 @@ export type Page = {
5
5
  subtitle: string;
6
6
  image: React.ReactNode;
7
7
  backgroundColor: string;
8
+ /**
9
+ * Optional custom background element (e.g. a `LinearGradient`) rendered behind
10
+ * the page content and cross-faded as the user swipes. Falls back to
11
+ * `backgroundColor` when omitted.
12
+ */
13
+ background?: React.ReactNode;
8
14
  color?: string;
9
15
  width?: number;
10
16
  containerStyle?: StyleProp<ViewStyle>;
@@ -13,6 +19,16 @@ export type Page = {
13
19
  titleStyle?: StyleProp<TextStyle>;
14
20
  subtitleStyle?: StyleProp<TextStyle>;
15
21
  swap?: boolean;
22
+ /** Per-page override for the "Next" button label. */
23
+ nextLabel?: string | React.ReactNode;
24
+ /** Per-page override for the "Skip" button label. */
25
+ skipLabel?: string | React.ReactNode;
26
+ /** Per-page override for the "Done" button label. */
27
+ doneLabel?: string | React.ReactNode;
28
+ /** When `false`, blocks advancing past this page (swipe snaps back, Next disabled). */
29
+ canSwipeForward?: boolean;
30
+ /** When `false`, blocks returning from this page (swipe snaps back). */
31
+ canSwipeBackward?: boolean;
16
32
  /** Internal: counter-flips page content when the slider is mirrored for RTL. */
17
33
  mirror?: boolean;
18
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../../src/components/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAKF,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,qBAwCzC"}
1
+ {"version":3,"file":"Page.d.ts","sourceRoot":"","sources":["../../../../src/components/Page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,uFAAuF;IACvF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAKF,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,qBAwCzC"}
@@ -33,6 +33,8 @@ type FooterProps = {
33
33
  progressBarFillStyle?: StyleProp<ViewStyle>;
34
34
  dotsAreTappable?: boolean;
35
35
  mirror?: boolean;
36
+ nextDisabled?: boolean;
37
+ previousDisabled?: boolean;
36
38
  onDone?: () => void;
37
39
  onSkip?: () => void;
38
40
  onNext?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../src/components/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAER,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACzC,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,yBAAyB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,4BAA4B,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,qBA+I5C"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../../../src/components/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EAER,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACzC,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,yBAAyB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACjD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,wBAAwB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAChD,4BAA4B,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,kBAAkB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACtC,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,qBAiJ5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Swiper.d.ts","sourceRoot":"","sources":["../../../../src/components/Swiper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA0E5C,CAAC"}
1
+ {"version":3,"file":"Swiper.d.ts","sourceRoot":"","sources":["../../../../src/components/Swiper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwF5C,CAAC"}
@@ -4,6 +4,7 @@ type ButtonProps = {
4
4
  onPress?: () => void;
5
5
  label?: string | React.ReactNode;
6
6
  color?: string;
7
+ disabled?: boolean;
7
8
  buttonStyle?: StyleProp<ViewStyle>;
8
9
  buttonTextStyle?: StyleProp<TextStyle>;
9
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,WAAW,wFAuBxC,CAAC;AAEF,eAAO,MAAM,UAAU,UACd,WAAW,GAAG;IACnB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACrC,sBAiBF,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,eAAO,MAAM,MAAM,UAAW,WAAW,wFAyBxC,CAAC;AAEF,eAAO,MAAM,UAAU,UACd,WAAW,GAAG;IACnB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;CACrC,sBAiBF,CAAC"}
@@ -14,6 +14,11 @@ export type OnboardingProps = {
14
14
  onDone?: () => void;
15
15
  onSkip?: () => void;
16
16
  onPageChange?: (index: number) => void;
17
+ /**
18
+ * When set, pressing "Skip" navigates to this page index instead of firing
19
+ * `onSkip` (e.g. skip intro slides but land on a sign-up slide in the flow).
20
+ */
21
+ skipToPage?: number;
17
22
  showPagination?: boolean;
18
23
  scrollEnabled?: boolean;
19
24
  autoPlay?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-app-onboard",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "React Native App Onboard is a customizable, easy-to-use, and efficient library for creating compelling onboarding experiences for your React Native applications. It provides smooth, fluid transitions and animations, with a focus on simplicity and usability.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -24,6 +24,7 @@ type CustomPagesProps = OnboardingProps & {
24
24
  onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
25
25
  onScrollBeginDrag: () => void;
26
26
  nextPage: () => void;
27
+ scrollTo: (index: number, animated?: boolean) => void;
27
28
  numberOfScreens: number;
28
29
  // Accepted for prop-spread compatibility. Forced-`rtl` mirroring applies to
29
30
  // the declarative `pages` API; custom children follow the device direction.
@@ -2,6 +2,7 @@ import React, { useMemo } from 'react';
2
2
  import { getBrightness, lighten, darken } from '../utils/color';
3
3
  import {
4
4
  Animated,
5
+ View,
5
6
  StyleSheet,
6
7
  Dimensions,
7
8
  FlatList,
@@ -25,6 +26,7 @@ type Props = OnboardingProps & {
25
26
  onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
26
27
  onScrollBeginDrag: () => void;
27
28
  nextPage: () => void;
29
+ scrollTo: (index: number, animated?: boolean) => void;
28
30
  mirror?: boolean;
29
31
  };
30
32
 
@@ -45,6 +47,22 @@ export const OnboardingPages = ({
45
47
  ? darken(footerBackgroundColor, 60)
46
48
  : lighten(footerBackgroundColor, 60);
47
49
 
50
+ // Per-page label overrides fall back to the top-level labels.
51
+ const nextLabel = currentPage_?.nextLabel ?? props.nextLabel;
52
+ const skipLabel = currentPage_?.skipLabel ?? props.skipLabel;
53
+ const doneLabel = currentPage_?.doneLabel ?? props.doneLabel;
54
+
55
+ // Per-page navigation gating (default allowed).
56
+ const canGoForward = currentPage_?.canSwipeForward !== false;
57
+ const canGoBackward = currentPage_?.canSwipeBackward !== false;
58
+ // Disable the gesture entirely when the current page gates either direction
59
+ // (FlatList can't block a single direction), so there's no swipe-then-snap
60
+ // bounce. The Next/Back buttons still navigate programmatically. Also honors
61
+ // a consumer-level `scrollEnabled={false}`.
62
+ const swipeEnabled =
63
+ props.scrollEnabled !== false && canGoForward && canGoBackward;
64
+ const hasCustomBackground = props.pages.some((p) => p.background != null);
65
+
48
66
  const interpolatedBackgroundColor = useMemo(() => {
49
67
  const pages = props.pages;
50
68
  // interpolate() requires at least 2 stops; for 0 or 1 pages there is
@@ -72,11 +90,13 @@ export const OnboardingPages = ({
72
90
  animatedValue: props.dotsAnimatedValue,
73
91
  showSkip: props.showSkip,
74
92
  numberOfScreens: props.pages.length,
75
- skipLabel: props.skipLabel,
76
- nextLabel: props.nextLabel,
93
+ skipLabel,
94
+ nextLabel,
77
95
  previousLabel: props.previousLabel,
78
96
  hasSkipPosition: !!props.skipButtonPosition,
79
- doneLabel: props.doneLabel,
97
+ doneLabel,
98
+ nextDisabled: !canGoForward,
99
+ previousDisabled: !canGoBackward,
80
100
  paginationStyle: props.paginationStyle,
81
101
  progressBarStyle: props.progressBarStyle,
82
102
  progressBarFillStyle: props.progressBarFillStyle,
@@ -103,12 +123,39 @@ export const OnboardingPages = ({
103
123
  { backgroundColor: interpolatedBackgroundColor },
104
124
  ]}
105
125
  >
126
+ {hasCustomBackground && (
127
+ <View style={StyleSheet.absoluteFill} pointerEvents="none">
128
+ {props.pages.map((page, index) =>
129
+ page.background == null ? null : (
130
+ <Animated.View
131
+ key={index}
132
+ style={[
133
+ StyleSheet.absoluteFill,
134
+ {
135
+ opacity: props.scrollX.interpolate({
136
+ inputRange: [
137
+ (index - 1) * pageWidth,
138
+ index * pageWidth,
139
+ (index + 1) * pageWidth,
140
+ ],
141
+ outputRange: [0, 1, 0],
142
+ extrapolate: 'clamp',
143
+ }),
144
+ },
145
+ ]}
146
+ >
147
+ {page.background}
148
+ </Animated.View>
149
+ )
150
+ )}
151
+ </View>
152
+ )}
106
153
  {props.skipButtonPosition && props.showSkip && (
107
154
  <SkipButton
108
155
  buttonTextStyle={props.skipLabelStyle}
109
156
  buttonStyle={props.skipButtonContainerStyle}
110
157
  position={props.skipButtonPosition}
111
- label={props.skipLabel}
158
+ label={skipLabel}
112
159
  onPress={props.onSkip}
113
160
  />
114
161
  )}
@@ -128,7 +175,7 @@ export const OnboardingPages = ({
128
175
  horizontal
129
176
  pagingEnabled
130
177
  showsHorizontalScrollIndicator={false}
131
- scrollEnabled={props.scrollEnabled}
178
+ scrollEnabled={swipeEnabled}
132
179
  style={props.mirror ? styles.mirror : undefined}
133
180
  keyExtractor={(_, index) => index.toString()}
134
181
  renderItem={({ item, index }) => (
@@ -148,6 +195,15 @@ export const OnboardingPages = ({
148
195
  const pageIndex = Math.round(
149
196
  event.nativeEvent.contentOffset.x / pageWidth
150
197
  );
198
+ const current = props.currentPage;
199
+ // Honor per-page swipe gating by snapping back to the current page.
200
+ if (
201
+ (pageIndex > current && !canGoForward) ||
202
+ (pageIndex < current && !canGoBackward)
203
+ ) {
204
+ props.scrollTo(current);
205
+ return;
206
+ }
151
207
  props.setPage(pageIndex || 0);
152
208
  }}
153
209
  />
@@ -14,6 +14,12 @@ export type Page = {
14
14
  subtitle: string;
15
15
  image: React.ReactNode;
16
16
  backgroundColor: string;
17
+ /**
18
+ * Optional custom background element (e.g. a `LinearGradient`) rendered behind
19
+ * the page content and cross-faded as the user swipes. Falls back to
20
+ * `backgroundColor` when omitted.
21
+ */
22
+ background?: React.ReactNode;
17
23
  color?: string;
18
24
  width?: number;
19
25
  containerStyle?: StyleProp<ViewStyle>;
@@ -22,6 +28,16 @@ export type Page = {
22
28
  titleStyle?: StyleProp<TextStyle>;
23
29
  subtitleStyle?: StyleProp<TextStyle>;
24
30
  swap?: boolean;
31
+ /** Per-page override for the "Next" button label. */
32
+ nextLabel?: string | React.ReactNode;
33
+ /** Per-page override for the "Skip" button label. */
34
+ skipLabel?: string | React.ReactNode;
35
+ /** Per-page override for the "Done" button label. */
36
+ doneLabel?: string | React.ReactNode;
37
+ /** When `false`, blocks advancing past this page (swipe snaps back, Next disabled). */
38
+ canSwipeForward?: boolean;
39
+ /** When `false`, blocks returning from this page (swipe snaps back). */
40
+ canSwipeBackward?: boolean;
25
41
  /** Internal: counter-flips page content when the slider is mirrored for RTL. */
26
42
  mirror?: boolean;
27
43
  };
@@ -45,6 +45,8 @@ type FooterProps = {
45
45
  progressBarFillStyle?: StyleProp<ViewStyle>;
46
46
  dotsAreTappable?: boolean;
47
47
  mirror?: boolean;
48
+ nextDisabled?: boolean;
49
+ previousDisabled?: boolean;
48
50
  onDone?: () => void;
49
51
  onSkip?: () => void;
50
52
  onNext?: () => void;
@@ -77,6 +79,7 @@ export function Pagination(props: FooterProps) {
77
79
  {showPrevious && (
78
80
  <Button
79
81
  onPress={() => previousPage()}
82
+ disabled={props.previousDisabled}
80
83
  buttonTextStyle={props.previousLabelStyle}
81
84
  buttonStyle={props.previousButtonContainerStyle}
82
85
  label={props.previousLabel || 'Back'}
@@ -177,6 +180,7 @@ export function Pagination(props: FooterProps) {
177
180
  {!isDone && props.showNext && (
178
181
  <Button
179
182
  onPress={props.onNext}
183
+ disabled={props.nextDisabled}
180
184
  label={props.nextLabel || 'Next'}
181
185
  buttonTextStyle={props.nextLabelStyle}
182
186
  buttonStyle={props.nextButtonContainerStyle}
@@ -34,10 +34,22 @@ export const Swiper: React.FC<OnboardingProps> = (props) => {
34
34
  currentPage,
35
35
  numberOfScreens,
36
36
  nextPage,
37
+ scrollTo,
37
38
  scrollEnabled,
38
39
  pauseAutoPlay,
39
40
  } = useOnboarding();
40
41
 
42
+ // When `skipToPage` is set, "Skip" navigates within the flow instead of
43
+ // exiting it (so `onSkip` is not called in that case).
44
+ const { skipToPage, onSkip } = props;
45
+ const handleSkip = React.useCallback(() => {
46
+ if (skipToPage != null) {
47
+ scrollTo(skipToPage);
48
+ } else {
49
+ onSkip?.();
50
+ }
51
+ }, [skipToPage, scrollTo, onSkip]);
52
+
41
53
  const onScroll = React.useMemo(
42
54
  () =>
43
55
  nativeDriverEnabled
@@ -71,8 +83,10 @@ export const Swiper: React.FC<OnboardingProps> = (props) => {
71
83
  currentPage,
72
84
  numberOfScreens,
73
85
  nextPage,
86
+ scrollTo,
74
87
  scrollEnabled,
75
88
  mirror,
89
+ onSkip: handleSkip,
76
90
  };
77
91
 
78
92
  if (props.children) {
@@ -12,6 +12,7 @@ type ButtonProps = {
12
12
  onPress?: () => void;
13
13
  label?: string | React.ReactNode;
14
14
  color?: string;
15
+ disabled?: boolean;
15
16
  buttonStyle?: StyleProp<ViewStyle>;
16
17
  buttonTextStyle?: StyleProp<TextStyle>;
17
18
  };
@@ -19,10 +20,12 @@ type ButtonProps = {
19
20
  export const Button = (props: ButtonProps) => {
20
21
  return typeof props.label === 'string' ? (
21
22
  <TouchableOpacity
22
- onPress={props.onPress}
23
- style={props.buttonStyle}
23
+ onPress={props.disabled ? undefined : props.onPress}
24
+ disabled={props.disabled}
25
+ style={[props.buttonStyle, props.disabled && styles.disabled]}
24
26
  accessibilityRole="button"
25
27
  accessibilityLabel={props.label}
28
+ accessibilityState={{ disabled: !!props.disabled }}
26
29
  >
27
30
  <Text
28
31
  style={[
@@ -102,4 +105,7 @@ const styles = StyleSheet.create({
102
105
  position: 'absolute',
103
106
  zIndex: 10,
104
107
  },
108
+ disabled: {
109
+ opacity: 0.4,
110
+ },
105
111
  });
@@ -14,6 +14,11 @@ export type OnboardingProps = {
14
14
  onDone?: () => void;
15
15
  onSkip?: () => void;
16
16
  onPageChange?: (index: number) => void;
17
+ /**
18
+ * When set, pressing "Skip" navigates to this page index instead of firing
19
+ * `onSkip` (e.g. skip intro slides but land on a sign-up slide in the flow).
20
+ */
21
+ skipToPage?: number;
17
22
  showPagination?: boolean;
18
23
  scrollEnabled?: boolean;
19
24
  autoPlay?: boolean;