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.
- package/README.md +5 -0
- package/lib/commonjs/components/CustomPages.js.map +1 -1
- package/lib/commonjs/components/OnboardingPages.js +41 -6
- package/lib/commonjs/components/OnboardingPages.js.map +1 -1
- package/lib/commonjs/components/Page.js.map +1 -1
- package/lib/commonjs/components/Pagination.js +2 -0
- package/lib/commonjs/components/Pagination.js.map +1 -1
- package/lib/commonjs/components/Swiper.js +18 -1
- package/lib/commonjs/components/Swiper.js.map +1 -1
- package/lib/commonjs/components/button.js +10 -3
- package/lib/commonjs/components/button.js.map +1 -1
- package/lib/module/components/CustomPages.js.map +1 -1
- package/lib/module/components/OnboardingPages.js +42 -7
- package/lib/module/components/OnboardingPages.js.map +1 -1
- package/lib/module/components/Page.js.map +1 -1
- package/lib/module/components/Pagination.js +2 -0
- package/lib/module/components/Pagination.js.map +1 -1
- package/lib/module/components/Swiper.js +18 -1
- package/lib/module/components/Swiper.js.map +1 -1
- package/lib/module/components/button.js +10 -3
- package/lib/module/components/button.js.map +1 -1
- package/lib/typescript/src/components/CustomPages.d.ts +1 -0
- package/lib/typescript/src/components/CustomPages.d.ts.map +1 -1
- package/lib/typescript/src/components/OnboardingPages.d.ts +1 -0
- package/lib/typescript/src/components/OnboardingPages.d.ts.map +1 -1
- package/lib/typescript/src/components/Page.d.ts +16 -0
- package/lib/typescript/src/components/Page.d.ts.map +1 -1
- package/lib/typescript/src/components/Pagination.d.ts +2 -0
- package/lib/typescript/src/components/Pagination.d.ts.map +1 -1
- package/lib/typescript/src/components/Swiper.d.ts.map +1 -1
- package/lib/typescript/src/components/button.d.ts +1 -0
- package/lib/typescript/src/components/button.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +5 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/CustomPages.tsx +1 -0
- package/src/components/OnboardingPages.tsx +61 -5
- package/src/components/Page.tsx +16 -0
- package/src/components/Pagination.tsx +4 -0
- package/src/components/Swiper.tsx +14 -0
- package/src/components/button.tsx +8 -2
- 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":";AAAA,SACEA,IAAI,EACJC,SAAS,EACTC,QAAQ,EACRC,UAAU,QAIL,cAAc;AACrB,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,MAAM,QAAQ,UAAU;
|
|
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","
|
|
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
|
-
|
|
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","
|
|
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,
|
|
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"}
|
|
@@ -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,
|
|
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,
|
|
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"}
|
|
@@ -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,
|
|
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.
|
|
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
|
|
76
|
-
nextLabel
|
|
93
|
+
skipLabel,
|
|
94
|
+
nextLabel,
|
|
77
95
|
previousLabel: props.previousLabel,
|
|
78
96
|
hasSkipPosition: !!props.skipButtonPosition,
|
|
79
|
-
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={
|
|
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={
|
|
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
|
/>
|
package/src/components/Page.tsx
CHANGED
|
@@ -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
|
-
|
|
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
|
});
|
package/src/types/index.ts
CHANGED
|
@@ -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;
|