rn-onboarding-analytics 1.7.5 → 1.7.6
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 +9 -10
- package/lib/module/spill-onboarding/analytics.js +2 -1
- package/lib/module/spill-onboarding/analytics.js.map +1 -1
- package/lib/module/spill-onboarding/components/OnboardingImageContainer.js +13 -22
- package/lib/module/spill-onboarding/components/OnboardingImageContainer.js.map +1 -1
- package/lib/module/spill-onboarding/components/OnboardingIntroPanel.js +11 -6
- package/lib/module/spill-onboarding/components/OnboardingIntroPanel.js.map +1 -1
- package/lib/module/spill-onboarding/components/OnboardingPaywallPanel.js +127 -107
- package/lib/module/spill-onboarding/components/OnboardingPaywallPanel.js.map +1 -1
- package/lib/module/spill-onboarding/components/OnboardingStepContainer.js +2 -1
- package/lib/module/spill-onboarding/components/OnboardingStepContainer.js.map +1 -1
- package/lib/module/spill-onboarding/hooks/useLogDev.js +24 -0
- package/lib/module/spill-onboarding/hooks/useLogDev.js.map +1 -0
- package/lib/module/spill-onboarding/index.js +16 -6
- package/lib/module/spill-onboarding/index.js.map +1 -1
- package/lib/module/utils/theme.js +22 -3
- package/lib/module/utils/theme.js.map +1 -1
- package/lib/typescript/src/spill-onboarding/analytics.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingImageContainer.d.ts +4 -2
- package/lib/typescript/src/spill-onboarding/components/OnboardingImageContainer.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingIntroPanel.d.ts +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingIntroPanel.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingPaywallPanel.d.ts +1 -1
- package/lib/typescript/src/spill-onboarding/components/OnboardingPaywallPanel.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/hooks/useLogDev.d.ts +7 -0
- package/lib/typescript/src/spill-onboarding/hooks/useLogDev.d.ts.map +1 -0
- package/lib/typescript/src/spill-onboarding/index.d.ts +1 -1
- package/lib/typescript/src/spill-onboarding/index.d.ts.map +1 -1
- package/lib/typescript/src/spill-onboarding/types.d.ts +38 -14
- package/lib/typescript/src/spill-onboarding/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/theme.d.ts +1 -0
- package/lib/typescript/src/utils/theme.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/spill-onboarding/analytics.ts +2 -4
- package/src/spill-onboarding/components/OnboardingImageContainer.tsx +21 -25
- package/src/spill-onboarding/components/OnboardingIntroPanel.tsx +15 -4
- package/src/spill-onboarding/components/OnboardingPaywallPanel.tsx +170 -114
- package/src/spill-onboarding/components/OnboardingStepContainer.tsx +1 -0
- package/src/spill-onboarding/hooks/useLogDev.ts +26 -0
- package/src/spill-onboarding/index.tsx +21 -4
- package/src/spill-onboarding/types.ts +44 -14
- package/src/utils/theme.ts +21 -3
|
@@ -12,6 +12,7 @@ import OnboardingImageContainer from "./components/OnboardingImageContainer.js";
|
|
|
12
12
|
import OnboardingModal from "./components/OnboardingModal.js";
|
|
13
13
|
import useMeasureHeight from "./hooks/useMeasureHeight.js";
|
|
14
14
|
import { trackEvent } from "./analytics.js";
|
|
15
|
+
import { useLogDev } from "./hooks/useLogDev.js";
|
|
15
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
17
|
function SpillOnboarding({
|
|
17
18
|
animationDuration = 500,
|
|
@@ -27,11 +28,13 @@ function SpillOnboarding({
|
|
|
27
28
|
apiKey,
|
|
28
29
|
isDev,
|
|
29
30
|
paywallPanel: paywallPanelProps,
|
|
30
|
-
backButtonIcon
|
|
31
|
+
backButtonIcon,
|
|
32
|
+
colors
|
|
31
33
|
}) {
|
|
32
34
|
const {
|
|
33
35
|
theme
|
|
34
36
|
} = useTheme();
|
|
37
|
+
const logDev = useLogDev(!!isDev);
|
|
35
38
|
const styles = useMemo(() => createStyles(theme), [theme]);
|
|
36
39
|
const backgroundSpillProgress = useSharedValue(0);
|
|
37
40
|
const [step, setStep] = useState(-1);
|
|
@@ -57,7 +60,7 @@ function SpillOnboarding({
|
|
|
57
60
|
};
|
|
58
61
|
const fromStepName = getStepName(step);
|
|
59
62
|
const toStepName = getStepName(stepNumber);
|
|
60
|
-
|
|
63
|
+
logDev('Onboarding Step Change:', {
|
|
61
64
|
from: fromStepName,
|
|
62
65
|
to: toStepName,
|
|
63
66
|
index: stepNumber
|
|
@@ -70,7 +73,7 @@ function SpillOnboarding({
|
|
|
70
73
|
from_step: fromStepName,
|
|
71
74
|
to_step: toStepName
|
|
72
75
|
}, isDev);
|
|
73
|
-
}, [onStepChangeProps, apiKey, step, steps, isDev]);
|
|
76
|
+
}, [onStepChangeProps, apiKey, step, steps, isDev, logDev]);
|
|
74
77
|
useEffect(() => {
|
|
75
78
|
const backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
|
|
76
79
|
if (step > 0) {
|
|
@@ -163,6 +166,9 @@ function SpillOnboarding({
|
|
|
163
166
|
return /*#__PURE__*/_jsx(OnboardingPaywallPanel, {
|
|
164
167
|
onPressContinue: handleContinue,
|
|
165
168
|
onClose: handleClose,
|
|
169
|
+
apiKey: apiKey,
|
|
170
|
+
isDev: isDev,
|
|
171
|
+
colors: colors,
|
|
166
172
|
...otherProps
|
|
167
173
|
});
|
|
168
174
|
};
|
|
@@ -184,7 +190,7 @@ function SpillOnboarding({
|
|
|
184
190
|
buttonLabel: currentStep.buttonLabel,
|
|
185
191
|
onBackPress: onBackPress,
|
|
186
192
|
onNextPress: onNextPress,
|
|
187
|
-
buttonPrimary:
|
|
193
|
+
buttonPrimary: false,
|
|
188
194
|
showBackButton: currentStep.showBackButton ?? showBackButton,
|
|
189
195
|
backButtonIcon: currentStep.backButtonIcon ?? backButtonIcon
|
|
190
196
|
});
|
|
@@ -212,13 +218,17 @@ function SpillOnboarding({
|
|
|
212
218
|
}), /*#__PURE__*/_jsx(OnboardingImageContainer, {
|
|
213
219
|
currentStep: currentStep,
|
|
214
220
|
currentStepImage: currentStepImage,
|
|
215
|
-
position: currentStep?.position ?? firstStep?.position ?? 'top',
|
|
216
221
|
animationDuration: animationDuration,
|
|
217
222
|
backgroundSpillProgress: backgroundSpillProgress,
|
|
218
223
|
screenHeight: screen.height,
|
|
219
224
|
introPanel: introPanel,
|
|
220
225
|
stepPanel: stepPanel,
|
|
221
|
-
background: background
|
|
226
|
+
background: background,
|
|
227
|
+
propimageStyle: typeof introPanelProps !== 'function' ? introPanelProps.propimageStyle : undefined
|
|
228
|
+
// If introPanel.image is a function, do NOT render it in ImageContainer
|
|
229
|
+
// because it's already rendered in OnboardingIntroPanel
|
|
230
|
+
,
|
|
231
|
+
hideImage: !currentStep && typeof introPanelProps !== 'function' && typeof introPanelProps.image === 'function'
|
|
222
232
|
}), isPaywall ? /*#__PURE__*/_jsx(View, {
|
|
223
233
|
style: styles.fullScreenPanel,
|
|
224
234
|
children: renderPaywallPanel()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","useEffect","useCallback","View","BackHandler","Platform","StyleSheet","useTheme","OnboardingIntroPanel","OnboardingPaywallPanel","useSharedValue","withTiming","OnboardingStepPanel","OnboardingStepContainer","OnboardingImageContainer","OnboardingModal","useMeasureHeight","trackEvent","jsx","_jsx","jsxs","_jsxs","SpillOnboarding","animationDuration","introPanel","introPanelProps","steps","onComplete","onSkip","onStepChange","onStepChangeProps","showBackButton","wrapInModalOnWeb","background","skipButton","apiKey","isDev","paywallPanel","paywallPanelProps","backButtonIcon","theme","styles","createStyles","backgroundSpillProgress","step","setStep","currentStep","undefined","firstStep","isPaywall","length","stepNumber","getStepName","index","s","title","fromStepName","toStepName","
|
|
1
|
+
{"version":3,"names":["useMemo","useState","useEffect","useCallback","View","BackHandler","Platform","StyleSheet","useTheme","OnboardingIntroPanel","OnboardingPaywallPanel","useSharedValue","withTiming","OnboardingStepPanel","OnboardingStepContainer","OnboardingImageContainer","OnboardingModal","useMeasureHeight","trackEvent","useLogDev","jsx","_jsx","jsxs","_jsxs","SpillOnboarding","animationDuration","introPanel","introPanelProps","steps","onComplete","onSkip","onStepChange","onStepChangeProps","showBackButton","wrapInModalOnWeb","background","skipButton","apiKey","isDev","paywallPanel","paywallPanelProps","backButtonIcon","colors","theme","logDev","styles","createStyles","backgroundSpillProgress","step","setStep","currentStep","undefined","firstStep","isPaywall","length","stepNumber","getStepName","index","s","title","fromStepName","toStepName","from","to","from_index","to_index","from_step","to_step","backHandler","addEventListener","set","duration","setTimeout","remove","stepPanel","screen","onPressStart","onNextPress","onBackPress","renderIntroPanel","subtitle","button","image","onPaywallContinue","planId","plan_id","renderPaywallPanel","onPressContinue","onClose","otherProps","handleContinue","handleClose","renderStepContent","component","onNext","onBack","isLast","label","description","buttonLabel","buttonPrimary","currentStepImage","onboardingContent","style","container","ref","children","bottomPanel","screenHeight","height","propimageStyle","hideImage","fullScreenPanel","OS","create","flex","backgroundColor","bg","secondary","paddingHorizontal","paddingBottom","insets","bottom","position","left","right","zIndex"],"sourceRoot":"../../../src","sources":["spill-onboarding/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,15 +26,15 @@ export const LightTheme = {
|
|
|
26
26
|
};
|
|
27
27
|
export const DarkTheme = {
|
|
28
28
|
bg: {
|
|
29
|
-
primary: '#
|
|
30
|
-
secondary: '#
|
|
29
|
+
primary: '#000000',
|
|
30
|
+
secondary: '#1C1C1E',
|
|
31
31
|
label: '#2C2C2E',
|
|
32
32
|
accent: '#0A84FF'
|
|
33
33
|
},
|
|
34
34
|
text: {
|
|
35
35
|
primary: '#FFFFFF',
|
|
36
36
|
secondary: '#8E8E93',
|
|
37
|
-
contrast: '#
|
|
37
|
+
contrast: '#FFFFFF'
|
|
38
38
|
},
|
|
39
39
|
fonts: {
|
|
40
40
|
introTitle: 'System',
|
|
@@ -49,4 +49,23 @@ export const DarkTheme = {
|
|
|
49
49
|
}
|
|
50
50
|
};
|
|
51
51
|
export const defaultTheme = LightTheme;
|
|
52
|
+
export const resolveTheme = (themeProp, contextTheme, defaultTo = 'context') => {
|
|
53
|
+
if (themeProp === 'light') return {
|
|
54
|
+
...LightTheme,
|
|
55
|
+
insets: contextTheme.insets
|
|
56
|
+
};
|
|
57
|
+
if (themeProp === 'dark') return {
|
|
58
|
+
...DarkTheme,
|
|
59
|
+
insets: contextTheme.insets
|
|
60
|
+
};
|
|
61
|
+
if (defaultTo === 'light') return {
|
|
62
|
+
...LightTheme,
|
|
63
|
+
insets: contextTheme.insets
|
|
64
|
+
};
|
|
65
|
+
if (defaultTo === 'dark') return {
|
|
66
|
+
...DarkTheme,
|
|
67
|
+
insets: contextTheme.insets
|
|
68
|
+
};
|
|
69
|
+
return contextTheme;
|
|
70
|
+
};
|
|
52
71
|
//# sourceMappingURL=theme.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LightTheme","bg","primary","secondary","label","accent","text","contrast","fonts","introTitle","introSubtitle","introButton","stepLabel","stepTitle","stepDescription","stepButton","primaryButton","secondaryButton","DarkTheme","defaultTheme"],"sourceRoot":"../../../src","sources":["utils/theme.ts"],"mappings":";;AAEA,OAAO,MAAMA,UAAU,GAAG;EACxBC,EAAE,EAAE;IACFC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBI,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,WAAW,EAAE,QAAQ;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,eAAe,EAAE,QAAQ;IACzBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,eAAe,EAAE;EACnB;AACF,CAAC;AAED,OAAO,MAAMC,SAAS,GAAG;EACvBjB,EAAE,EAAE;IACFC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBI,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,WAAW,EAAE,QAAQ;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,eAAe,EAAE,QAAQ;IACzBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,eAAe,EAAE;EACnB;AACF,CAAC;AAED,OAAO,MAAME,YAAY,GAAGnB,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["LightTheme","bg","primary","secondary","label","accent","text","contrast","fonts","introTitle","introSubtitle","introButton","stepLabel","stepTitle","stepDescription","stepButton","primaryButton","secondaryButton","DarkTheme","defaultTheme","resolveTheme","themeProp","contextTheme","defaultTo","insets"],"sourceRoot":"../../../src","sources":["utils/theme.ts"],"mappings":";;AAEA,OAAO,MAAMA,UAAU,GAAG;EACxBC,EAAE,EAAE;IACFC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBI,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,WAAW,EAAE,QAAQ;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,eAAe,EAAE,QAAQ;IACzBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,eAAe,EAAE;EACnB;AACF,CAAC;AAED,OAAO,MAAMC,SAAS,GAAG;EACvBjB,EAAE,EAAE;IACFC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBC,KAAK,EAAE,SAAS;IAChBC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE;IACJJ,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAE,SAAS;IACpBI,QAAQ,EAAE;EACZ,CAAC;EACDC,KAAK,EAAE;IACLC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,WAAW,EAAE,QAAQ;IACrBC,SAAS,EAAE,QAAQ;IACnBC,SAAS,EAAE,QAAQ;IACnBC,eAAe,EAAE,QAAQ;IACzBC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE,QAAQ;IACvBC,eAAe,EAAE;EACnB;AACF,CAAC;AAED,OAAO,MAAME,YAAY,GAAGnB,UAAU;AAKtC,OAAO,MAAMoB,YAAY,GAAGA,CAC1BC,SAAuC,EACvCC,YAAmB,EACnBC,SAAuC,GAAG,SAAS,KACzC;EACV,IAAIF,SAAS,KAAK,OAAO,EACvB,OAAO;IAAE,GAAGrB,UAAU;IAAEwB,MAAM,EAAEF,YAAY,CAACE;EAAO,CAAC;EACvD,IAAIH,SAAS,KAAK,MAAM,EACtB,OAAO;IAAE,GAAGH,SAAS;IAAEM,MAAM,EAAEF,YAAY,CAACE;EAAO,CAAC;EAEtD,IAAID,SAAS,KAAK,OAAO,EACvB,OAAO;IAAE,GAAGvB,UAAU;IAAEwB,MAAM,EAAEF,YAAY,CAACE;EAAO,CAAC;EACvD,IAAID,SAAS,KAAK,MAAM,EACtB,OAAO;IAAE,GAAGL,SAAS;IAAEM,MAAM,EAAEF,YAAY,CAACE;EAAO,CAAC;EAEtD,OAAOF,YAAY;AACrB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/analytics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/analytics.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,WACb,MAAM,GAAG,SAAS,aACf,MAAM,aACP,GAAG,UACN,OAAO,kBAyEf,CAAC"}
|
|
@@ -2,17 +2,19 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import { type ImageSourcePropType } from 'react-native';
|
|
3
3
|
import { type SharedValue } from 'react-native-reanimated';
|
|
4
4
|
import type { OnboardingStep } from '../types';
|
|
5
|
+
import type { StyleProp, ImageStyle } from 'react-native';
|
|
5
6
|
interface OnboardingImageContainerProps {
|
|
6
7
|
currentStep: OnboardingStep | undefined;
|
|
7
8
|
currentStepImage: ImageSourcePropType | undefined;
|
|
8
|
-
position: 'top' | 'bottom';
|
|
9
9
|
animationDuration: number;
|
|
10
10
|
backgroundSpillProgress: SharedValue<number>;
|
|
11
11
|
introPanel: any;
|
|
12
12
|
stepPanel: any;
|
|
13
13
|
screenHeight: number;
|
|
14
14
|
background?: () => ReactNode;
|
|
15
|
+
propimageStyle?: StyleProp<ImageStyle>;
|
|
16
|
+
hideImage?: boolean;
|
|
15
17
|
}
|
|
16
|
-
declare function OnboardingImageContainer({ currentStep, currentStepImage,
|
|
18
|
+
declare function OnboardingImageContainer({ currentStep, currentStepImage, animationDuration, backgroundSpillProgress, introPanel, stepPanel, screenHeight, background, propimageStyle, hideImage, }: OnboardingImageContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
17
19
|
export default OnboardingImageContainer;
|
|
18
20
|
//# sourceMappingURL=OnboardingImageContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingImageContainer.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingImageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,cAAc,CAAC;AACtB,OAAiB,EAMf,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"OnboardingImageContainer.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingImageContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,cAAc,CAAC;AACtB,OAAiB,EAMf,KAAK,WAAW,EAEjB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1D,UAAU,6BAA6B;IACrC,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,gBAAgB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7C,UAAU,EAAE,GAAG,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,iBAAS,wBAAwB,CAAC,EAChC,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,GACV,EAAE,6BAA6B,2CAwG/B;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OnboardingIntroPanelProps } from '../types';
|
|
2
|
-
declare function OnboardingIntroPanel({ onPressStart, title, subtitle, button, image, }: OnboardingIntroPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare function OnboardingIntroPanel({ onPressStart, title, subtitle, button, image, propimageStyle, }: OnboardingIntroPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default OnboardingIntroPanel;
|
|
4
4
|
//# sourceMappingURL=OnboardingIntroPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingIntroPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingIntroPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,iBAAS,oBAAoB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,
|
|
1
|
+
{"version":3,"file":"OnboardingIntroPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingIntroPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,iBAAS,oBAAoB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,cAAc,GACf,EAAE,yBAAyB,2CA+D3B;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { OnboardingPaywallPanelProps } from '../types';
|
|
2
|
-
declare function OnboardingPaywallPanel({ onPressContinue, onClose, title, subtitle, button, image, plans, products, helperTextContinue, onRestorePurchase, onTerms, onPrivacy, subscriptionSkus, onPurchaseResult, }: OnboardingPaywallPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare function OnboardingPaywallPanel({ onPressContinue, onClose, title, subtitle, button, image, plans, products, helperTextContinue, onRestorePurchase, onTerms, onPrivacy, subscriptionSkus, onPurchaseResult, apiKey, isDev, colors, design, theme: themeProp, }: OnboardingPaywallPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default OnboardingPaywallPanel;
|
|
4
4
|
//# sourceMappingURL=OnboardingPaywallPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingPaywallPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingPaywallPanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OnboardingPaywallPanel.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/components/OnboardingPaywallPanel.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,2BAA2B,EAAe,MAAM,UAAU,CAAC;AAOzE,iBAAS,sBAAsB,CAAC,EAC9B,eAAe,EACf,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,EACL,KAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EAAE,SAAS,GACjB,EAAE,2BAA2B,2CAsnB7B;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper function to log messages with the Dev Mode prefix.
|
|
3
|
+
* Can be used outside of React components.
|
|
4
|
+
*/
|
|
5
|
+
export declare const logDevMessage: (isDev: boolean, message: string, data?: any) => void;
|
|
6
|
+
export declare const useLogDev: (isDev: boolean) => (message: string, data?: any) => void;
|
|
7
|
+
//# sourceMappingURL=useLogDev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLogDev.d.ts","sourceRoot":"","sources":["../../../../../src/spill-onboarding/hooks/useLogDev.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,aAAa,UAAW,OAAO,WAAW,MAAM,SAAS,GAAG,SAQxE,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,OAAO,eAE1B,MAAM,SAAS,GAAG,SAO/B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type OnboardingProps } from './types';
|
|
2
|
-
declare function SpillOnboarding({ animationDuration, introPanel: introPanelProps, steps, onComplete, onSkip, onStepChange: onStepChangeProps, showBackButton, wrapInModalOnWeb, background, skipButton, apiKey, isDev, paywallPanel: paywallPanelProps, backButtonIcon, }: OnboardingProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare function SpillOnboarding({ animationDuration, introPanel: introPanelProps, steps, onComplete, onSkip, onStepChange: onStepChangeProps, showBackButton, wrapInModalOnWeb, background, skipButton, apiKey, isDev, paywallPanel: paywallPanelProps, backButtonIcon, colors, }: OnboardingProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default SpillOnboarding;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,iBAAS,eAAe,CAAC,EACvB,iBAAuB,EACvB,UAAU,EAAE,eAAe,EAC3B,KAAK,EACL,UAAU,EACV,MAAM,EACN,YAAY,EAAE,iBAAiB,EAC/B,cAAqB,EACrB,gBAAuB,EACvB,UAAU,EACV,UAAU,EACV,MAAM,EACN,KAAK,EACL,YAAY,EAAE,iBAAiB,EAC/B,cAAc,EACd,MAAM,GACP,EAAE,eAAe,2CAoRjB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
-
import type { ImageSourcePropType } from 'react-native';
|
|
2
|
+
import type { ImageSourcePropType, StyleProp, ImageStyle } from 'react-native';
|
|
3
3
|
import type { PurchaseError, ProductPurchase, SubscriptionPurchase } from 'react-native-iap';
|
|
4
4
|
/**
|
|
5
5
|
* Theme color tokens used by onboarding components.
|
|
@@ -8,40 +8,40 @@ export interface OnboardingColors {
|
|
|
8
8
|
/**
|
|
9
9
|
* Background colors used across the UI.
|
|
10
10
|
*/
|
|
11
|
-
background
|
|
11
|
+
background?: {
|
|
12
12
|
/**
|
|
13
13
|
* Primary page/screen background color.
|
|
14
14
|
*/
|
|
15
|
-
primary
|
|
15
|
+
primary?: string;
|
|
16
16
|
/**
|
|
17
17
|
* Background for panels or cards.
|
|
18
18
|
*/
|
|
19
|
-
secondary
|
|
19
|
+
secondary?: string;
|
|
20
20
|
/**
|
|
21
21
|
* Subtle background for labels.
|
|
22
22
|
*/
|
|
23
|
-
label
|
|
23
|
+
label?: string;
|
|
24
24
|
/**
|
|
25
25
|
* Accented background for emphasis areas.
|
|
26
26
|
*/
|
|
27
|
-
accent
|
|
27
|
+
accent?: string;
|
|
28
28
|
};
|
|
29
29
|
/**
|
|
30
30
|
* Text colors used for typography.
|
|
31
31
|
*/
|
|
32
|
-
text
|
|
32
|
+
text?: {
|
|
33
33
|
/**
|
|
34
34
|
* Default body text color for readability on `background.primary`.
|
|
35
35
|
*/
|
|
36
|
-
primary
|
|
36
|
+
primary?: string;
|
|
37
37
|
/**
|
|
38
38
|
* Subdued text color for secondary information.
|
|
39
39
|
*/
|
|
40
|
-
secondary
|
|
40
|
+
secondary?: string;
|
|
41
41
|
/**
|
|
42
42
|
* High-contrast text color intended for buttons/overlays.
|
|
43
43
|
*/
|
|
44
|
-
contrast
|
|
44
|
+
contrast?: string;
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
@@ -86,6 +86,8 @@ export interface OnboardingIntroPanelProps {
|
|
|
86
86
|
}) => ReactNode);
|
|
87
87
|
/** Optional image shown on the intro panel. */
|
|
88
88
|
image?: ImageSourcePropType | (() => ReactNode);
|
|
89
|
+
/** Optional image style to override default sizing. */
|
|
90
|
+
propimageStyle?: StyleProp<ImageStyle>;
|
|
89
91
|
}
|
|
90
92
|
type OnboardingStepDefault = {
|
|
91
93
|
/** Discriminator: for default steps, `component` must be omitted. */
|
|
@@ -100,8 +102,10 @@ type OnboardingStepDefault = {
|
|
|
100
102
|
buttonLabel: string;
|
|
101
103
|
/** Image displayed alongside the step content. */
|
|
102
104
|
image: ImageSourcePropType;
|
|
103
|
-
/**
|
|
104
|
-
|
|
105
|
+
/** Optional image style to override default sizing. */
|
|
106
|
+
propimageStyle?: StyleProp<ImageStyle>;
|
|
107
|
+
/** Optional position of the content panel. */
|
|
108
|
+
position?: 'top' | 'bottom';
|
|
105
109
|
/** Optional: Override global showBackButton for this step */
|
|
106
110
|
showBackButton?: boolean;
|
|
107
111
|
/** Optional: Override global backButtonIcon for this step */
|
|
@@ -121,8 +125,10 @@ type OnboardingStepCustom = {
|
|
|
121
125
|
}) => ReactNode;
|
|
122
126
|
/** Image displayed alongside the custom step. */
|
|
123
127
|
image: ImageSourcePropType;
|
|
124
|
-
/**
|
|
125
|
-
|
|
128
|
+
/** Optional image style to override default sizing. */
|
|
129
|
+
propimageStyle?: StyleProp<ImageStyle>;
|
|
130
|
+
/** Optional position of the content panel. */
|
|
131
|
+
position?: 'top' | 'bottom';
|
|
126
132
|
};
|
|
127
133
|
/**
|
|
128
134
|
* A single onboarding step. Either a default text-based step or a fully custom component.
|
|
@@ -254,6 +260,8 @@ export interface OnboardingPaywallPanelProps {
|
|
|
254
260
|
* If provided, handles fetching and displaying products automatically.
|
|
255
261
|
*/
|
|
256
262
|
products?: PaywallProductConfig[];
|
|
263
|
+
/** Theme colors to use for styling. */
|
|
264
|
+
theme?: 'dark' | 'light';
|
|
257
265
|
/**
|
|
258
266
|
* Button content. Either a simple string label or a render function.
|
|
259
267
|
*/
|
|
@@ -300,6 +308,22 @@ export interface OnboardingPaywallPanelProps {
|
|
|
300
308
|
* If provided, a close button will be rendered in the header.
|
|
301
309
|
*/
|
|
302
310
|
onClose?: () => void;
|
|
311
|
+
/**
|
|
312
|
+
* Design variation for A/B testing.
|
|
313
|
+
*/
|
|
314
|
+
design?: 'design1' | 'design2';
|
|
315
|
+
/**
|
|
316
|
+
* Theme colors to use for styling the paywall.
|
|
317
|
+
*/
|
|
318
|
+
colors?: Partial<OnboardingColors>;
|
|
319
|
+
/**
|
|
320
|
+
* API Key for analytics.
|
|
321
|
+
*/
|
|
322
|
+
apiKey?: string;
|
|
323
|
+
/**
|
|
324
|
+
* If true, analytics events will be logged to console but not sent to the server.
|
|
325
|
+
*/
|
|
326
|
+
isDev?: boolean;
|
|
303
327
|
}
|
|
304
328
|
type OnboardingPaywallPanelConfig = OnboardingPaywallPanelProps | (({ onPressContinue, }: {
|
|
305
329
|
onPressContinue: (planId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/spill-onboarding/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf;;WAEG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,wCAAwC;IACxC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,4DAA4D;IAC5D,YAAY,EAAE,MAAM,IAAI,CAAC;IAEzB,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,MAAM,EACF,MAAM,GACN,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;QAAE,YAAY,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC,CAAC;IAEpE,+CAA+C;IAC/C,KAAK,CAAC,EAAE,mBAAmB,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IAChD,uDAAuD;IACvD,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CACxC;AAED,KAAK,qBAAqB,GAAG;IAC3B,qEAAqE;IACrE,SAAS,CAAC,EAAE,KAAK,CAAC;IAElB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IAEd,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IAEpB,kDAAkD;IAClD,KAAK,EAAE,mBAAmB,CAAC;IAE3B,uDAAuD;IACvD,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAE5B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE;QACjB,gCAAgC;QAChC,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,oCAAoC;QACpC,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,qCAAqC;QACrC,MAAM,EAAE,OAAO,CAAC;KACjB,KAAK,SAAS,CAAC;IAEhB,iDAAiD;IACjD,KAAK,EAAE,mBAAmB,CAAC;IAE3B,uDAAuD;IACvD,cAAc,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAEvC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IAEd,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IAEpB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IAEpB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB,mEAAmE;IACnE,aAAa,EAAE,OAAO,CAAC;IAEvB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,uCAAuC;IACvC,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,KAAK,oBAAoB,GACrB,IAAI,CAAC,yBAAyB,EAAE,cAAc,CAAC,GAC/C,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE;IAAE,YAAY,EAAE,MAAM,IAAI,CAAA;CAAE,KAAK,SAAS,CAAC,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;OAGG;IACH,UAAU,EAAE,oBAAoB,CAAC;IAEjC,uCAAuC;IACvC,KAAK,EAAE,cAAc,EAAE,CAAC;IAExB,qDAAqD;IACrD,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,SAAS,CAAC;IAE7B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC;IAEjE,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzB,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEnC,yEAAyE;IACzE,KAAK,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAEjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,uCAAuC;IACvC,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B;;;OAGG;IACH,YAAY,CAAC,EAAE,4BAA4B,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oCAAoC;IACpC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;IAE7B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,kDAAkD;IAClD,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3B,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,kEAAkE;IAClE,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAElC,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,SAAS,CAAC,CAAC;IAEvE,iDAAiD;IACjD,KAAK,CAAC,EAAE,mBAAmB,GAAG,CAAC,MAAM,SAAS,CAAC,CAAC;IAEhD,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,wCAAwC;IACxC,iBAAiB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAE3D,wCAAwC;IACxC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAEjD,sCAAsC;IACtC,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAEnD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAE/B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE;QAC1B,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,IAAI,CAAC,EACD,eAAe,GACf,eAAe,EAAE,GACjB,oBAAoB,GACpB,IAAI,GACJ,IAAI,CAAC;KACV,KAAK,IAAI,CAAC;IAEX;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEnC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,KAAK,4BAA4B,GAC7B,2BAA2B,GAC3B,CAAC,CAAC,EACA,eAAe,GAChB,EAAE;IACD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,KAAK,SAAS,CAAC,CAAC"}
|
|
@@ -75,4 +75,5 @@ export type ThemeColors = typeof defaultTheme;
|
|
|
75
75
|
export type Theme = ThemeColors & {
|
|
76
76
|
insets: EdgeInsets;
|
|
77
77
|
};
|
|
78
|
+
export declare const resolveTheme: (themeProp: "light" | "dark" | undefined, contextTheme: Theme, defaultTo?: "light" | "dark" | "context") => Theme;
|
|
78
79
|
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/utils/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC;AAC9C,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/utils/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC;AAC9C,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzD,eAAO,MAAM,YAAY,cACZ,OAAO,GAAG,MAAM,GAAG,SAAS,gBACzB,KAAK,cACR,OAAO,GAAG,MAAM,GAAG,SAAS,KACtC,KAYF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
import Constants from 'expo-constants';
|
|
3
3
|
import * as Localization from 'expo-localization';
|
|
4
|
+
import { logDevMessage } from './hooks/useLogDev';
|
|
4
5
|
|
|
5
6
|
// TODO: need to get an better domain
|
|
6
7
|
const API_URL = 'https://api.freesupabase.shop/api/track';
|
|
@@ -43,10 +44,7 @@ export const trackEvent = async (
|
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
if (isDev) {
|
|
46
|
-
|
|
47
|
-
'🚧 [Dev Mode] Analytics Event (Not Sent):',
|
|
48
|
-
JSON.stringify(payload, null, 2)
|
|
49
|
-
);
|
|
47
|
+
logDevMessage(isDev, 'Analytics Event (Not Sent):', payload);
|
|
50
48
|
return;
|
|
51
49
|
}
|
|
52
50
|
|
|
@@ -21,29 +21,32 @@ import useMeasureHeight from '../hooks/useMeasureHeight';
|
|
|
21
21
|
import type { Theme } from '../../utils/theme';
|
|
22
22
|
import type { OnboardingStep } from '../types';
|
|
23
23
|
import { ExpoImage } from '../adapters/expo-image';
|
|
24
|
+
import type { StyleProp, ImageStyle } from 'react-native';
|
|
24
25
|
|
|
25
26
|
interface OnboardingImageContainerProps {
|
|
26
27
|
currentStep: OnboardingStep | undefined;
|
|
27
28
|
currentStepImage: ImageSourcePropType | undefined;
|
|
28
|
-
position: 'top' | 'bottom';
|
|
29
29
|
animationDuration: number;
|
|
30
30
|
backgroundSpillProgress: SharedValue<number>;
|
|
31
31
|
introPanel: any;
|
|
32
32
|
stepPanel: any;
|
|
33
33
|
screenHeight: number;
|
|
34
34
|
background?: () => ReactNode;
|
|
35
|
+
propimageStyle?: StyleProp<ImageStyle>;
|
|
36
|
+
hideImage?: boolean;
|
|
35
37
|
}
|
|
36
38
|
|
|
37
39
|
function OnboardingImageContainer({
|
|
38
40
|
currentStep,
|
|
39
41
|
currentStepImage,
|
|
40
|
-
position,
|
|
41
42
|
animationDuration,
|
|
42
43
|
backgroundSpillProgress,
|
|
43
44
|
introPanel,
|
|
44
45
|
stepPanel,
|
|
45
46
|
screenHeight,
|
|
46
47
|
background,
|
|
48
|
+
propimageStyle,
|
|
49
|
+
hideImage,
|
|
47
50
|
}: OnboardingImageContainerProps) {
|
|
48
51
|
const { theme } = useTheme();
|
|
49
52
|
const image = useMeasureHeight();
|
|
@@ -70,18 +73,7 @@ function OnboardingImageContainer({
|
|
|
70
73
|
}));
|
|
71
74
|
|
|
72
75
|
const imageTargetY = useDerivedValue(() => {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (position === 'top') {
|
|
76
|
-
return topSafe;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const imageH = image.height || 0;
|
|
80
|
-
const modalTop = screenHeight - bottomPanelHeight - 16;
|
|
81
|
-
const yBottom = modalTop - imageH;
|
|
82
|
-
|
|
83
|
-
const shouldClampTop = !currentStep;
|
|
84
|
-
return shouldClampTop ? Math.max(yBottom, topSafe) : yBottom;
|
|
76
|
+
return theme.insets.top + extraPadding + 16;
|
|
85
77
|
});
|
|
86
78
|
|
|
87
79
|
const hasMounted = useSharedValue(false);
|
|
@@ -130,7 +122,7 @@ function OnboardingImageContainer({
|
|
|
130
122
|
<Animated.View style={[styles.colorBg, backgroundAnimation]} />
|
|
131
123
|
)}
|
|
132
124
|
|
|
133
|
-
{currentStepImage && (
|
|
125
|
+
{currentStepImage && !hideImage && (
|
|
134
126
|
<Animated.View style={[styles.imageWrapper, imageWrapperAnimation]}>
|
|
135
127
|
<Animated.View style={[styles.image, imageAnimation]} ref={image.ref}>
|
|
136
128
|
{ExpoImage ? (
|
|
@@ -138,14 +130,20 @@ function OnboardingImageContainer({
|
|
|
138
130
|
source={currentStepImage as ExpoImageProps['source']}
|
|
139
131
|
contentFit="contain"
|
|
140
132
|
transition={0}
|
|
141
|
-
style={
|
|
133
|
+
style={[
|
|
134
|
+
styles.imageStyle,
|
|
135
|
+
currentStep?.propimageStyle || propimageStyle,
|
|
136
|
+
]}
|
|
142
137
|
/>
|
|
143
138
|
) : (
|
|
144
139
|
<Image
|
|
145
140
|
source={currentStepImage}
|
|
146
141
|
resizeMode="contain"
|
|
147
142
|
fadeDuration={0}
|
|
148
|
-
style={
|
|
143
|
+
style={[
|
|
144
|
+
styles.imageStyle,
|
|
145
|
+
currentStep?.propimageStyle || propimageStyle,
|
|
146
|
+
]}
|
|
149
147
|
/>
|
|
150
148
|
)}
|
|
151
149
|
</Animated.View>
|
|
@@ -164,19 +162,17 @@ const createStyles = (theme: Theme) =>
|
|
|
164
162
|
overflow: 'hidden',
|
|
165
163
|
},
|
|
166
164
|
imageWrapper: {
|
|
167
|
-
position: '
|
|
168
|
-
|
|
169
|
-
left: 0,
|
|
170
|
-
right: 0,
|
|
171
|
-
overflow: 'hidden',
|
|
165
|
+
position: 'relative',
|
|
166
|
+
overflow: 'visible',
|
|
172
167
|
},
|
|
173
168
|
image: {
|
|
174
169
|
alignSelf: 'center',
|
|
175
170
|
alignItems: 'center',
|
|
176
|
-
|
|
171
|
+
width: '100%',
|
|
172
|
+
height: '100%',
|
|
177
173
|
},
|
|
178
174
|
imageStyle: {
|
|
179
|
-
width:
|
|
180
|
-
height:
|
|
175
|
+
width: '100%',
|
|
176
|
+
height: '100%',
|
|
181
177
|
},
|
|
182
178
|
});
|
|
@@ -12,6 +12,7 @@ function OnboardingIntroPanel({
|
|
|
12
12
|
subtitle,
|
|
13
13
|
button,
|
|
14
14
|
image,
|
|
15
|
+
propimageStyle,
|
|
15
16
|
}: OnboardingIntroPanelProps) {
|
|
16
17
|
const { theme } = useTheme();
|
|
17
18
|
const styles = useMemo(() => createStyles(theme), [theme]);
|
|
@@ -58,9 +59,16 @@ function OnboardingIntroPanel({
|
|
|
58
59
|
|
|
59
60
|
return (
|
|
60
61
|
<View style={styles.container}>
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
{/* If it's a function, render it directly. If it's a static source, render an Image. */}
|
|
63
|
+
{typeof image === 'function' ? (
|
|
64
|
+
image()
|
|
65
|
+
) : image ? (
|
|
66
|
+
<Image
|
|
67
|
+
source={image}
|
|
68
|
+
style={[styles.image, propimageStyle]}
|
|
69
|
+
resizeMode="contain"
|
|
70
|
+
/>
|
|
71
|
+
) : null}
|
|
64
72
|
<View style={styles.textContainer}>
|
|
65
73
|
{renderTitle()}
|
|
66
74
|
{renderSubtitle()}
|
|
@@ -79,6 +87,9 @@ const createStyles = (theme: Theme) =>
|
|
|
79
87
|
},
|
|
80
88
|
image: {
|
|
81
89
|
alignSelf: 'center',
|
|
90
|
+
width: '100%',
|
|
91
|
+
height: 200,
|
|
92
|
+
zIndex: 1,
|
|
82
93
|
},
|
|
83
94
|
textContainer: {
|
|
84
95
|
alignItems: 'center',
|
|
@@ -94,7 +105,7 @@ const createStyles = (theme: Theme) =>
|
|
|
94
105
|
color: theme.text.primary,
|
|
95
106
|
},
|
|
96
107
|
line2: {
|
|
97
|
-
color: theme.
|
|
108
|
+
color: theme.text.contrast,
|
|
98
109
|
},
|
|
99
110
|
titleText: {
|
|
100
111
|
fontFamily: theme.fonts.introTitle,
|