@rocapine/react-native-onboarding 1.0.1 → 1.1.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 +12 -4
- package/dist/OnboardingStudioClient.d.ts.map +1 -1
- package/dist/OnboardingStudioClient.js +8 -2
- package/dist/OnboardingStudioClient.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/OnboardingStudioClient.ts +15 -2
- package/src/types.ts +4 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# @rocapine/react-native-onboarding
|
|
1
|
+
# @rocapine/react-native-onboarding
|
|
2
2
|
|
|
3
3
|
**A CMS-driven onboarding system for React Native mobile apps.**
|
|
4
4
|
|
|
@@ -23,7 +23,7 @@ Build beautiful, customizable onboarding flows that update instantly without app
|
|
|
23
23
|
### Installation
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npm install @rocapine/react-native-onboarding
|
|
26
|
+
npm install @rocapine/react-native-onboarding
|
|
27
27
|
npx expo install expo-router
|
|
28
28
|
```
|
|
29
29
|
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
OnboardingProvider,
|
|
35
35
|
OnboardingStudioClient,
|
|
36
36
|
ProgressBar,
|
|
37
|
-
} from "@rocapine/react-native-onboarding
|
|
37
|
+
} from "@rocapine/react-native-onboarding";
|
|
38
38
|
|
|
39
39
|
const client = new OnboardingStudioClient("your-project-id", {
|
|
40
40
|
appVersion: "1.0.0",
|
|
@@ -60,7 +60,7 @@ export default function RootLayout() {
|
|
|
60
60
|
import {
|
|
61
61
|
useOnboardingQuestions,
|
|
62
62
|
OnboardingPage,
|
|
63
|
-
} from "@rocapine/react-native-onboarding
|
|
63
|
+
} from "@rocapine/react-native-onboarding";
|
|
64
64
|
|
|
65
65
|
export default function OnboardingScreen() {
|
|
66
66
|
const { step, isLastStep } = useOnboardingQuestions({ stepNumber: 1 });
|
|
@@ -201,6 +201,14 @@ npm start
|
|
|
201
201
|
|
|
202
202
|
We welcome contributions! Please see our [Contributing Guide](./CONTRIBUTING.md) for details.
|
|
203
203
|
|
|
204
|
+
### Publishing:
|
|
205
|
+
|
|
206
|
+
- Bump version and commit "chore: bump version"
|
|
207
|
+
- Publish
|
|
208
|
+
```
|
|
209
|
+
npm publish --access public
|
|
210
|
+
```
|
|
211
|
+
|
|
204
212
|
---
|
|
205
213
|
|
|
206
214
|
## 📧 Support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingStudioClient.d.ts","sourceRoot":"","sources":["../src/OnboardingStudioClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACb,MAAM,SAAS,CAAC;AAIjB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,6BAA6B,CAAC;gBAElC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B;IAS/D,QAAQ,CAAC,QAAQ,SAAS,YAAY,GAAG,kBAAkB,EAC/D,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"OnboardingStudioClient.d.ts","sourceRoot":"","sources":["../src/OnboardingStudioClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,UAAU,EACV,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC7B,iBAAiB,EACjB,YAAY,EACb,MAAM,SAAS,CAAC;AAIjB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAS;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,6BAA6B,CAAC;gBAElC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,6BAA6B;IAS/D,QAAQ,CAAC,QAAQ,SAAS,YAAY,GAAG,kBAAkB,EAC/D,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAAC,OAAO,EAAE,uBAAuB,CAAA;KAAE,CAAC;CA2E7E"}
|
|
@@ -37,7 +37,12 @@ class OnboardingStudioClient {
|
|
|
37
37
|
const url = `${this.baseUrl}/get-onboarding-steps?${urlParams.toString()}`;
|
|
38
38
|
console.info("OnboardingStudioClient getSteps url", url);
|
|
39
39
|
try {
|
|
40
|
-
const response = await
|
|
40
|
+
const response = await Promise.race(this.options.timeout
|
|
41
|
+
? [
|
|
42
|
+
fetch(url),
|
|
43
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("timeout")), this.options.timeout)),
|
|
44
|
+
]
|
|
45
|
+
: [fetch(url)]);
|
|
41
46
|
if (!response.ok) {
|
|
42
47
|
throw new Error(`Failed to fetch onboarding steps: ${response.status} ${response.statusText}`);
|
|
43
48
|
}
|
|
@@ -52,8 +57,9 @@ class OnboardingStudioClient {
|
|
|
52
57
|
};
|
|
53
58
|
}
|
|
54
59
|
catch (error) {
|
|
55
|
-
console.error(error);
|
|
60
|
+
console.error("OnboardingStudioClient getSteps error", error);
|
|
56
61
|
if (this.options.fallbackOnboarding) {
|
|
62
|
+
console.warn("OnboardingStudioClient getSteps fallback onboarding");
|
|
57
63
|
return {
|
|
58
64
|
data: this.options.fallbackOnboarding,
|
|
59
65
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingStudioClient.js","sourceRoot":"","sources":["../src/OnboardingStudioClient.ts"],"names":[],"mappings":";;;AAUA,+CAAwC;AAExC,MAAa,sBAAsB;IAKjC,YAAY,SAAiB,EAAE,OAAsC;QACnE,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO;YACV,OAAO,CAAC,OAAO;gBACf,uDAAuD,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,iBAAqC,EACrC,iBAAqC;QAErC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAEzC,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,+BAA+B;QAC/B,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACzD,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,uBAAQ,CAAC,EAAE,CAAC,CAAC;QAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,yCAAyC;QACrF,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,+BAA+B;QAC/B,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,MAAM,EAAE,CAAC;YAC9B,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,yBAAyB,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC3E,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"OnboardingStudioClient.js","sourceRoot":"","sources":["../src/OnboardingStudioClient.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,6BAA6B,CACvC,QAAQ,SAAS,YAAY,GAAG,YAAY,IAC1C;IACF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY;IACtE,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocapine/react-native-onboarding",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Headless React Native SDK for Rocapine Onboarding Studio - Data fetching, state management, and hooks",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
|
-
"prepare": "npm run build",
|
|
10
9
|
"watch": "tsc --watch",
|
|
11
10
|
"patch": "npm version patch && npm run build && npm publish"
|
|
12
11
|
},
|
|
@@ -59,7 +59,19 @@ export class OnboardingStudioClient {
|
|
|
59
59
|
const url = `${this.baseUrl}/get-onboarding-steps?${urlParams.toString()}`;
|
|
60
60
|
console.info("OnboardingStudioClient getSteps url", url);
|
|
61
61
|
try {
|
|
62
|
-
const response = await
|
|
62
|
+
const response = await Promise.race(
|
|
63
|
+
this.options.timeout
|
|
64
|
+
? [
|
|
65
|
+
fetch(url),
|
|
66
|
+
new Promise<Response>((_, reject) =>
|
|
67
|
+
setTimeout(
|
|
68
|
+
() => reject(new Error("timeout")),
|
|
69
|
+
this.options.timeout
|
|
70
|
+
)
|
|
71
|
+
),
|
|
72
|
+
]
|
|
73
|
+
: [fetch(url)]
|
|
74
|
+
);
|
|
63
75
|
if (!response.ok) {
|
|
64
76
|
throw new Error(
|
|
65
77
|
`Failed to fetch onboarding steps: ${response.status} ${response.statusText}`
|
|
@@ -75,8 +87,9 @@ export class OnboardingStudioClient {
|
|
|
75
87
|
},
|
|
76
88
|
};
|
|
77
89
|
} catch (error) {
|
|
78
|
-
console.error(error);
|
|
90
|
+
console.error("OnboardingStudioClient getSteps error", error);
|
|
79
91
|
if (this.options.fallbackOnboarding) {
|
|
92
|
+
console.warn("OnboardingStudioClient getSteps fallback onboarding");
|
|
80
93
|
return {
|
|
81
94
|
data: this.options.fallbackOnboarding as Onboarding<StepType>,
|
|
82
95
|
headers: {
|
package/src/types.ts
CHANGED
|
@@ -13,11 +13,14 @@ export type BaseStepType = {
|
|
|
13
13
|
figmaUrl?: string | null;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
export type OnboardingStudioClientOptions<
|
|
16
|
+
export type OnboardingStudioClientOptions<
|
|
17
|
+
StepType extends BaseStepType = BaseStepType
|
|
18
|
+
> = {
|
|
17
19
|
appVersion?: string;
|
|
18
20
|
isSandbox?: boolean;
|
|
19
21
|
baseUrl?: string;
|
|
20
22
|
fallbackOnboarding?: Onboarding<StepType>;
|
|
23
|
+
timeout?: number;
|
|
21
24
|
};
|
|
22
25
|
|
|
23
26
|
export type OnboardingOptions = {
|