@umituz/react-native-onboarding 1.0.6 → 1.0.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/react-native-onboarding",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "Generic onboarding flow for React Native apps with gradient backgrounds, animations, and customizable slides. SOLID, DRY, KISS principles applied.",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -61,4 +61,3 @@
61
61
  "LICENSE"
62
62
  ]
63
63
  }
64
-
@@ -75,5 +75,15 @@ export interface OnboardingOptions {
75
75
  * Auto-complete onboarding on last slide (default: false)
76
76
  */
77
77
  autoComplete?: boolean;
78
+
79
+ /**
80
+ * Callback when user wants to upgrade from onboarding
81
+ */
82
+ onUpgrade?: () => void;
83
+
84
+ /**
85
+ * Show paywall modal on onboarding completion (default: false)
86
+ */
87
+ showPaywallOnComplete?: boolean;
78
88
  }
79
89
 
@@ -34,12 +34,26 @@ export interface OnboardingScreenProps extends OnboardingOptions {
34
34
  totalSlides: number;
35
35
  isLastSlide: boolean;
36
36
  onNext: () => void;
37
+ onUpgrade?: () => void;
38
+ showPaywallOnComplete?: boolean;
37
39
  }) => React.ReactNode;
38
40
 
39
41
  /**
40
42
  * Optional custom slide component
41
43
  */
42
44
  renderSlide?: (slide: OnboardingOptions["slides"][0]) => React.ReactNode;
45
+
46
+ /**
47
+ * Optional upgrade callback for premium features
48
+ * Called when user wants to upgrade from onboarding
49
+ */
50
+ onUpgrade?: () => void;
51
+
52
+ /**
53
+ * Show paywall modal on onboarding completion (default: false)
54
+ * When true, shows premium paywall before completing onboarding
55
+ */
56
+ showPaywallOnComplete?: boolean;
43
57
  }
44
58
 
45
59
  /**
@@ -64,6 +78,8 @@ export const OnboardingScreen: React.FC<OnboardingScreenProps> = ({
64
78
  renderHeader,
65
79
  renderFooter,
66
80
  renderSlide,
81
+ onUpgrade,
82
+ showPaywallOnComplete = false,
67
83
  }) => {
68
84
  const insets = useSafeAreaInsets();
69
85
  const onboardingStore = useOnboardingStore();
@@ -141,6 +157,8 @@ export const OnboardingScreen: React.FC<OnboardingScreenProps> = ({
141
157
  totalSlides: slides.length,
142
158
  isLastSlide,
143
159
  onNext: handleNext,
160
+ onUpgrade,
161
+ showPaywallOnComplete,
144
162
  })
145
163
  ) : (
146
164
  <OnboardingFooter