flowboard-react 0.6.2 → 0.6.4
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 +185 -52
- package/app.plugin.js +341 -0
- package/bin/setup.js +428 -0
- package/lib/module/FlowboardProvider.js +1 -1
- package/lib/module/FlowboardProvider.js.map +1 -1
- package/lib/module/components/FlowboardFlow.js +6 -6
- package/lib/module/components/FlowboardFlow.js.map +1 -1
- package/lib/module/components/FlowboardRenderer.js +6 -6
- package/lib/module/components/FlowboardRenderer.js.map +1 -1
- package/lib/module/core/clientContext.js +10 -29
- package/lib/module/core/clientContext.js.map +1 -1
- package/lib/module/core/fontAwesome.js +2 -9
- package/lib/module/core/fontAwesome.js.map +1 -1
- package/lib/module/core/onboardingRepository.js +13 -13
- package/lib/module/core/onboardingRepository.js.map +1 -1
- package/lib/module/native/asyncStorage.js +55 -0
- package/lib/module/native/asyncStorage.js.map +1 -0
- package/lib/module/native/deviceInfo.js +46 -0
- package/lib/module/native/deviceInfo.js.map +1 -0
- package/lib/module/native/inAppReview.js +17 -0
- package/lib/module/native/inAppReview.js.map +1 -0
- package/lib/module/native/linearGradient.js +29 -0
- package/lib/module/native/linearGradient.js.map +1 -0
- package/lib/module/native/lottie.js +20 -0
- package/lib/module/native/lottie.js.map +1 -0
- package/lib/module/native/maskedView.js +26 -0
- package/lib/module/native/maskedView.js.map +1 -0
- package/lib/module/native/pagerView.js +79 -0
- package/lib/module/native/pagerView.js.map +1 -0
- package/lib/module/native/permissions.js +30 -0
- package/lib/module/native/permissions.js.map +1 -0
- package/lib/module/native/runtime.js +81 -0
- package/lib/module/native/runtime.js.map +1 -0
- package/lib/module/native/safeAreaContext.js +43 -0
- package/lib/module/native/safeAreaContext.js.map +1 -0
- package/lib/module/native/svg.js +83 -0
- package/lib/module/native/svg.js.map +1 -0
- package/lib/module/native/vectorIcons.js +41 -0
- package/lib/module/native/vectorIcons.js.map +1 -0
- package/lib/typescript/src/components/FlowboardFlow.d.ts.map +1 -1
- package/lib/typescript/src/components/FlowboardRenderer.d.ts.map +1 -1
- package/lib/typescript/src/core/clientContext.d.ts.map +1 -1
- package/lib/typescript/src/core/fontAwesome.d.ts +1 -1
- package/lib/typescript/src/core/fontAwesome.d.ts.map +1 -1
- package/lib/typescript/src/core/onboardingRepository.d.ts.map +1 -1
- package/lib/typescript/src/native/asyncStorage.d.ts +16 -0
- package/lib/typescript/src/native/asyncStorage.d.ts.map +1 -0
- package/lib/typescript/src/native/deviceInfo.d.ts +11 -0
- package/lib/typescript/src/native/deviceInfo.d.ts.map +1 -0
- package/lib/typescript/src/native/inAppReview.d.ts +4 -0
- package/lib/typescript/src/native/inAppReview.d.ts.map +1 -0
- package/lib/typescript/src/native/linearGradient.d.ts +3 -0
- package/lib/typescript/src/native/linearGradient.d.ts.map +1 -0
- package/lib/typescript/src/native/lottie.d.ts +3 -0
- package/lib/typescript/src/native/lottie.d.ts.map +1 -0
- package/lib/typescript/src/native/maskedView.d.ts +3 -0
- package/lib/typescript/src/native/maskedView.d.ts.map +1 -0
- package/lib/typescript/src/native/pagerView.d.ts +14 -0
- package/lib/typescript/src/native/pagerView.d.ts.map +1 -0
- package/lib/typescript/src/native/permissions.d.ts +9 -0
- package/lib/typescript/src/native/permissions.d.ts.map +1 -0
- package/lib/typescript/src/native/runtime.d.ts +13 -0
- package/lib/typescript/src/native/runtime.d.ts.map +1 -0
- package/lib/typescript/src/native/safeAreaContext.d.ts +15 -0
- package/lib/typescript/src/native/safeAreaContext.d.ts.map +1 -0
- package/lib/typescript/src/native/svg.d.ts +8 -0
- package/lib/typescript/src/native/svg.d.ts.map +1 -0
- package/lib/typescript/src/native/vectorIcons.d.ts +4 -0
- package/lib/typescript/src/native/vectorIcons.d.ts.map +1 -0
- package/package.json +21 -14
- package/src/FlowboardProvider.tsx +1 -1
- package/src/components/FlowboardFlow.tsx +10 -7
- package/src/components/FlowboardRenderer.tsx +8 -13
- package/src/core/clientContext.ts +10 -32
- package/src/core/fontAwesome.ts +2 -9
- package/src/core/onboardingRepository.ts +18 -13
- package/src/native/asyncStorage.ts +99 -0
- package/src/native/deviceInfo.ts +88 -0
- package/src/native/inAppReview.ts +34 -0
- package/src/native/linearGradient.tsx +24 -0
- package/src/native/lottie.tsx +17 -0
- package/src/native/maskedView.tsx +19 -0
- package/src/native/pagerView.tsx +95 -0
- package/src/native/permissions.ts +59 -0
- package/src/native/runtime.ts +110 -0
- package/src/native/safeAreaContext.tsx +44 -0
- package/src/native/svg.tsx +82 -0
- package/src/native/vectorIcons.tsx +50 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
-
import DeviceInfo from 'react-native-device-info';
|
|
5
3
|
import { Platform } from 'react-native';
|
|
6
4
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
5
|
import 'react-native-get-random-values';
|
|
6
|
+
import { FlowboardAsyncStorage } from "../native/asyncStorage.js";
|
|
7
|
+
import { FlowboardDeviceInfo } from "../native/deviceInfo.js";
|
|
8
8
|
const INSTALL_ID_KEY = 'flowboard_install_id';
|
|
9
9
|
export class ClientContext {
|
|
10
10
|
constructor(data) {
|
|
@@ -20,14 +20,14 @@ export class ClientContext {
|
|
|
20
20
|
}
|
|
21
21
|
static async create() {
|
|
22
22
|
const installId = await getOrCreateInstallId();
|
|
23
|
-
const appVersion =
|
|
24
|
-
const buildNumber =
|
|
25
|
-
const bundleId =
|
|
26
|
-
const locale = await getDeviceLocale();
|
|
23
|
+
const appVersion = FlowboardDeviceInfo.getVersion();
|
|
24
|
+
const buildNumber = FlowboardDeviceInfo.getBuildNumber();
|
|
25
|
+
const bundleId = FlowboardDeviceInfo.getBundleId();
|
|
26
|
+
const locale = await FlowboardDeviceInfo.getDeviceLocale();
|
|
27
27
|
const country = locale.includes('_') ? locale.split('_').pop() ?? '' : '';
|
|
28
28
|
const os = Platform.OS;
|
|
29
|
-
const osVersion =
|
|
30
|
-
const deviceType = mapDeviceType(await
|
|
29
|
+
const osVersion = FlowboardDeviceInfo.getSystemVersion();
|
|
30
|
+
const deviceType = mapDeviceType(await FlowboardDeviceInfo.getDeviceType());
|
|
31
31
|
return new ClientContext({
|
|
32
32
|
appVersion,
|
|
33
33
|
buildNumber,
|
|
@@ -63,31 +63,12 @@ export class ClientContext {
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
async function getOrCreateInstallId() {
|
|
66
|
-
const stored = await
|
|
66
|
+
const stored = await FlowboardAsyncStorage.getItem(INSTALL_ID_KEY);
|
|
67
67
|
if (stored) return stored;
|
|
68
68
|
const installId = uuidv4();
|
|
69
|
-
await
|
|
69
|
+
await FlowboardAsyncStorage.setItem(INSTALL_ID_KEY, installId);
|
|
70
70
|
return installId;
|
|
71
71
|
}
|
|
72
|
-
async function getDeviceLocale() {
|
|
73
|
-
const deviceInfoAny = DeviceInfo;
|
|
74
|
-
if (typeof deviceInfoAny.getDeviceLocale === 'function') {
|
|
75
|
-
const locale = await deviceInfoAny.getDeviceLocale();
|
|
76
|
-
if (locale) return locale;
|
|
77
|
-
}
|
|
78
|
-
if (typeof deviceInfoAny.getDeviceLocales === 'function') {
|
|
79
|
-
const locales = await deviceInfoAny.getDeviceLocales();
|
|
80
|
-
if (Array.isArray(locales) && locales.length > 0) {
|
|
81
|
-
const first = locales[0];
|
|
82
|
-
if (typeof first === 'string') return first;
|
|
83
|
-
if (first?.languageTag) return first.languageTag;
|
|
84
|
-
if (first?.languageCode) {
|
|
85
|
-
return first.countryCode ? `${first.languageCode}_${first.countryCode}` : first.languageCode;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return 'en_US';
|
|
90
|
-
}
|
|
91
72
|
function mapDeviceType(deviceType) {
|
|
92
73
|
switch (deviceType?.toLowerCase()) {
|
|
93
74
|
case 'handset':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Platform","v4","uuidv4","FlowboardAsyncStorage","FlowboardDeviceInfo","INSTALL_ID_KEY","ClientContext","constructor","data","appVersion","buildNumber","locale","country","os","osVersion","deviceType","installId","bundleId","create","getOrCreateInstallId","getVersion","getBuildNumber","getBundleId","getDeviceLocale","includes","split","pop","OS","getSystemVersion","mapDeviceType","getDeviceType","toJson","app","version","build","user","platform","device","stored","getItem","setItem","toLowerCase"],"sourceRoot":"../../../src","sources":["core/clientContext.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import FontAwesome6 from
|
|
3
|
+
import { FontAwesome6, getFontAwesomeGlyphMap } from "../native/vectorIcons.js";
|
|
4
4
|
const hexRegex = /^(0x)?[a-fA-F0-9]{4,5}$/;
|
|
5
5
|
export function resolveFontAwesomeIcon(name, style = 'solid') {
|
|
6
6
|
if (!name) return {
|
|
@@ -47,14 +47,7 @@ export function resolveFontAwesomeIcon(name, style = 'solid') {
|
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
function getGlyphMap() {
|
|
50
|
-
|
|
51
|
-
if (typeof anyIcon.getRawGlyphMap === 'function') {
|
|
52
|
-
return anyIcon.getRawGlyphMap();
|
|
53
|
-
}
|
|
54
|
-
if (anyIcon.glyphMap) {
|
|
55
|
-
return anyIcon.glyphMap;
|
|
56
|
-
}
|
|
57
|
-
return null;
|
|
50
|
+
return getFontAwesomeGlyphMap();
|
|
58
51
|
}
|
|
59
52
|
function styleProps(style) {
|
|
60
53
|
const normalized = style.toLowerCase().replace(/-/g, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FontAwesome6","hexRegex","resolveFontAwesomeIcon","name","style","props","styleProps","test","codePoint","parseInt","replace","glyphMap","getGlyphMap","fallback","iconName","value","Object","entries","toLowerCase","startsWith","includes","
|
|
1
|
+
{"version":3,"names":["FontAwesome6","getFontAwesomeGlyphMap","hexRegex","resolveFontAwesomeIcon","name","style","props","styleProps","test","codePoint","parseInt","replace","glyphMap","getGlyphMap","fallback","iconName","value","Object","entries","toLowerCase","startsWith","includes","normalized","brand","regular","light","thin","duotone","sharp","solid"],"sourceRoot":"../../../src","sources":["core/fontAwesome.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { FlowboardAsyncStorage } from "../native/asyncStorage.js";
|
|
4
4
|
const STORAGE_KEY = 'flowboard_onboarding_json';
|
|
5
5
|
const FETCH_TIME_KEY = 'flowboard_fetch_time';
|
|
6
6
|
const PROGRESS_FLOW_KEY = 'flowboard_progress_flow_id';
|
|
@@ -8,11 +8,11 @@ const PROGRESS_STEP_KEY = 'flowboard_progress_step';
|
|
|
8
8
|
const PROGRESS_FORM_DATA_KEY = 'flowboard_progress_form_data';
|
|
9
9
|
export class OnboardingRepository {
|
|
10
10
|
async saveOnboardingJson(json) {
|
|
11
|
-
await
|
|
12
|
-
await
|
|
11
|
+
await FlowboardAsyncStorage.setItem(STORAGE_KEY, JSON.stringify(json));
|
|
12
|
+
await FlowboardAsyncStorage.setItem(FETCH_TIME_KEY, Date.now().toString());
|
|
13
13
|
}
|
|
14
14
|
async getOnboardingJson() {
|
|
15
|
-
const jsonString = await
|
|
15
|
+
const jsonString = await FlowboardAsyncStorage.getItem(STORAGE_KEY);
|
|
16
16
|
if (!jsonString) return null;
|
|
17
17
|
try {
|
|
18
18
|
return JSON.parse(jsonString);
|
|
@@ -22,25 +22,25 @@ export class OnboardingRepository {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
async clearOnboardingJson() {
|
|
25
|
-
await
|
|
25
|
+
await FlowboardAsyncStorage.multiRemove([STORAGE_KEY, FETCH_TIME_KEY]);
|
|
26
26
|
}
|
|
27
27
|
async saveProgress(params) {
|
|
28
|
-
await
|
|
29
|
-
await
|
|
30
|
-
await
|
|
28
|
+
await FlowboardAsyncStorage.setItem(PROGRESS_FLOW_KEY, params.flowId);
|
|
29
|
+
await FlowboardAsyncStorage.setItem(PROGRESS_STEP_KEY, params.stepIndex.toString());
|
|
30
|
+
await FlowboardAsyncStorage.setItem(PROGRESS_FORM_DATA_KEY, JSON.stringify(params.formData));
|
|
31
31
|
}
|
|
32
32
|
async getProgressStepForFlow(flowId) {
|
|
33
|
-
const storedFlowId = await
|
|
33
|
+
const storedFlowId = await FlowboardAsyncStorage.getItem(PROGRESS_FLOW_KEY);
|
|
34
34
|
if (storedFlowId !== flowId) return null;
|
|
35
|
-
const value = await
|
|
35
|
+
const value = await FlowboardAsyncStorage.getItem(PROGRESS_STEP_KEY);
|
|
36
36
|
if (!value) return null;
|
|
37
37
|
const parsed = Number(value);
|
|
38
38
|
return Number.isNaN(parsed) ? null : parsed;
|
|
39
39
|
}
|
|
40
40
|
async getProgressFormDataForFlow(flowId) {
|
|
41
|
-
const storedFlowId = await
|
|
41
|
+
const storedFlowId = await FlowboardAsyncStorage.getItem(PROGRESS_FLOW_KEY);
|
|
42
42
|
if (storedFlowId !== flowId) return null;
|
|
43
|
-
const jsonString = await
|
|
43
|
+
const jsonString = await FlowboardAsyncStorage.getItem(PROGRESS_FORM_DATA_KEY);
|
|
44
44
|
if (!jsonString) return null;
|
|
45
45
|
try {
|
|
46
46
|
const decoded = JSON.parse(jsonString);
|
|
@@ -56,7 +56,7 @@ export class OnboardingRepository {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
async clearProgress() {
|
|
59
|
-
await
|
|
59
|
+
await FlowboardAsyncStorage.multiRemove([PROGRESS_FLOW_KEY, PROGRESS_STEP_KEY, PROGRESS_FORM_DATA_KEY]);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
//# sourceMappingURL=onboardingRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["FlowboardAsyncStorage","STORAGE_KEY","FETCH_TIME_KEY","PROGRESS_FLOW_KEY","PROGRESS_STEP_KEY","PROGRESS_FORM_DATA_KEY","OnboardingRepository","saveOnboardingJson","json","setItem","JSON","stringify","Date","now","toString","getOnboardingJson","jsonString","getItem","parse","clearOnboardingJson","multiRemove","saveProgress","params","flowId","stepIndex","formData","getProgressStepForFlow","storedFlowId","value","parsed","Number","isNaN","getProgressFormDataForFlow","decoded","clearProgress"],"sourceRoot":"../../../src","sources":["core/onboardingRepository.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { hasNativeModule, safeAsync } from "./runtime.js";
|
|
5
|
+
const memoryStore = new Map();
|
|
6
|
+
const warning = 'AsyncStorage is unavailable. Flowboard will fall back to in-memory storage until native setup is fixed.';
|
|
7
|
+
export const asyncStorageAvailable = hasNativeModule('RNCAsyncStorage', 'RNC_AsyncSQLiteDBStorage', 'AsyncSQLiteDBStorage', 'AsyncLocalStorage', 'PlatformLocalStorage');
|
|
8
|
+
function getMemoryValue(key) {
|
|
9
|
+
return memoryStore.has(key) ? memoryStore.get(key) ?? null : null;
|
|
10
|
+
}
|
|
11
|
+
async function getItem(key) {
|
|
12
|
+
const fallback = getMemoryValue(key);
|
|
13
|
+
return safeAsync('native-async-storage-get', asyncStorageAvailable, async () => {
|
|
14
|
+
const value = await AsyncStorage.getItem(key);
|
|
15
|
+
if (typeof value === 'string') {
|
|
16
|
+
memoryStore.set(key, value);
|
|
17
|
+
}
|
|
18
|
+
return value ?? fallback;
|
|
19
|
+
}, fallback, warning);
|
|
20
|
+
}
|
|
21
|
+
async function setItem(key, value) {
|
|
22
|
+
memoryStore.set(key, value);
|
|
23
|
+
await safeAsync('native-async-storage-set', asyncStorageAvailable, async () => {
|
|
24
|
+
await AsyncStorage.setItem(key, value);
|
|
25
|
+
}, undefined, warning);
|
|
26
|
+
}
|
|
27
|
+
async function removeItem(key) {
|
|
28
|
+
memoryStore.delete(key);
|
|
29
|
+
await safeAsync('native-async-storage-remove', asyncStorageAvailable, async () => {
|
|
30
|
+
await AsyncStorage.removeItem(key);
|
|
31
|
+
}, undefined, warning);
|
|
32
|
+
}
|
|
33
|
+
async function multiRemove(keys) {
|
|
34
|
+
keys.forEach(key => memoryStore.delete(key));
|
|
35
|
+
await safeAsync('native-async-storage-multi-remove', asyncStorageAvailable, async () => {
|
|
36
|
+
await AsyncStorage.multiRemove(keys);
|
|
37
|
+
}, undefined, warning);
|
|
38
|
+
}
|
|
39
|
+
async function clear() {
|
|
40
|
+
memoryStore.clear();
|
|
41
|
+
await safeAsync('native-async-storage-clear', asyncStorageAvailable, async () => {
|
|
42
|
+
if (typeof AsyncStorage.clear === 'function') {
|
|
43
|
+
await AsyncStorage.clear();
|
|
44
|
+
}
|
|
45
|
+
}, undefined, warning);
|
|
46
|
+
}
|
|
47
|
+
export const FlowboardAsyncStorage = {
|
|
48
|
+
available: asyncStorageAvailable,
|
|
49
|
+
clear,
|
|
50
|
+
getItem,
|
|
51
|
+
multiRemove,
|
|
52
|
+
removeItem,
|
|
53
|
+
setItem
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=asyncStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","hasNativeModule","safeAsync","memoryStore","Map","warning","asyncStorageAvailable","getMemoryValue","key","has","get","getItem","fallback","value","set","setItem","undefined","removeItem","delete","multiRemove","keys","forEach","clear","FlowboardAsyncStorage","available"],"sourceRoot":"../../../src","sources":["native/asyncStorage.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,eAAe,EAAEC,SAAS,QAAQ,cAAW;AAEtD,MAAMC,WAAW,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAE7C,MAAMC,OAAO,GACX,yGAAyG;AAE3G,OAAO,MAAMC,qBAAqB,GAAGL,eAAe,CAClD,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,sBACF,CAAC;AAED,SAASM,cAAcA,CAACC,GAAW,EAAiB;EAClD,OAAOL,WAAW,CAACM,GAAG,CAACD,GAAG,CAAC,GAAGL,WAAW,CAACO,GAAG,CAACF,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI;AACnE;AAEA,eAAeG,OAAOA,CAACH,GAAW,EAA0B;EAC1D,MAAMI,QAAQ,GAAGL,cAAc,CAACC,GAAG,CAAC;EACpC,OAAON,SAAS,CACd,0BAA0B,EAC1BI,qBAAqB,EACrB,YAAY;IACV,MAAMO,KAAK,GAAG,MAAMb,YAAY,CAACW,OAAO,CAACH,GAAG,CAAC;IAC7C,IAAI,OAAOK,KAAK,KAAK,QAAQ,EAAE;MAC7BV,WAAW,CAACW,GAAG,CAACN,GAAG,EAAEK,KAAK,CAAC;IAC7B;IACA,OAAOA,KAAK,IAAID,QAAQ;EAC1B,CAAC,EACDA,QAAQ,EACRP,OACF,CAAC;AACH;AAEA,eAAeU,OAAOA,CAACP,GAAW,EAAEK,KAAa,EAAiB;EAChEV,WAAW,CAACW,GAAG,CAACN,GAAG,EAAEK,KAAK,CAAC;EAC3B,MAAMX,SAAS,CACb,0BAA0B,EAC1BI,qBAAqB,EACrB,YAAY;IACV,MAAMN,YAAY,CAACe,OAAO,CAACP,GAAG,EAAEK,KAAK,CAAC;EACxC,CAAC,EACDG,SAAS,EACTX,OACF,CAAC;AACH;AAEA,eAAeY,UAAUA,CAACT,GAAW,EAAiB;EACpDL,WAAW,CAACe,MAAM,CAACV,GAAG,CAAC;EACvB,MAAMN,SAAS,CACb,6BAA6B,EAC7BI,qBAAqB,EACrB,YAAY;IACV,MAAMN,YAAY,CAACiB,UAAU,CAACT,GAAG,CAAC;EACpC,CAAC,EACDQ,SAAS,EACTX,OACF,CAAC;AACH;AAEA,eAAec,WAAWA,CAACC,IAAc,EAAiB;EACxDA,IAAI,CAACC,OAAO,CAAEb,GAAG,IAAKL,WAAW,CAACe,MAAM,CAACV,GAAG,CAAC,CAAC;EAC9C,MAAMN,SAAS,CACb,mCAAmC,EACnCI,qBAAqB,EACrB,YAAY;IACV,MAAMN,YAAY,CAACmB,WAAW,CAACC,IAAI,CAAC;EACtC,CAAC,EACDJ,SAAS,EACTX,OACF,CAAC;AACH;AAEA,eAAeiB,KAAKA,CAAA,EAAkB;EACpCnB,WAAW,CAACmB,KAAK,CAAC,CAAC;EACnB,MAAMpB,SAAS,CACb,4BAA4B,EAC5BI,qBAAqB,EACrB,YAAY;IACV,IAAI,OAAQN,YAAY,CAASsB,KAAK,KAAK,UAAU,EAAE;MACrD,MAAOtB,YAAY,CAASsB,KAAK,CAAC,CAAC;IACrC;EACF,CAAC,EACDN,SAAS,EACTX,OACF,CAAC;AACH;AAEA,OAAO,MAAMkB,qBAAqB,GAAG;EACnCC,SAAS,EAAElB,qBAAqB;EAChCgB,KAAK;EACLX,OAAO;EACPQ,WAAW;EACXF,UAAU;EACVF;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import DeviceInfo from 'react-native-device-info';
|
|
4
|
+
import { hasNativeModule, safeAsync, safeSync } from "./runtime.js";
|
|
5
|
+
const warning = 'react-native-device-info is unavailable. Flowboard will use generic device metadata until native setup is fixed.';
|
|
6
|
+
const nativeDeviceInfo = DeviceInfo;
|
|
7
|
+
export const deviceInfoAvailable = hasNativeModule('RNDeviceInfo');
|
|
8
|
+
export const FlowboardDeviceInfo = {
|
|
9
|
+
available: deviceInfoAvailable,
|
|
10
|
+
getBuildNumber() {
|
|
11
|
+
return safeSync('native-device-info-build-number', deviceInfoAvailable, () => String(nativeDeviceInfo.getBuildNumber?.() ?? '1'), '1', warning);
|
|
12
|
+
},
|
|
13
|
+
async getDeviceLocale() {
|
|
14
|
+
return safeAsync('native-device-info-locale', deviceInfoAvailable, async () => {
|
|
15
|
+
if (typeof nativeDeviceInfo.getDeviceLocale === 'function') {
|
|
16
|
+
const locale = await nativeDeviceInfo.getDeviceLocale();
|
|
17
|
+
if (locale) return String(locale);
|
|
18
|
+
}
|
|
19
|
+
if (typeof nativeDeviceInfo.getDeviceLocales === 'function') {
|
|
20
|
+
const locales = await nativeDeviceInfo.getDeviceLocales();
|
|
21
|
+
if (Array.isArray(locales) && locales.length > 0) {
|
|
22
|
+
const first = locales[0];
|
|
23
|
+
if (typeof first === 'string') return first;
|
|
24
|
+
if (first?.languageTag) return String(first.languageTag);
|
|
25
|
+
if (first?.languageCode) {
|
|
26
|
+
return first.countryCode ? `${first.languageCode}_${first.countryCode}` : String(first.languageCode);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return 'en_US';
|
|
31
|
+
}, 'en_US', warning);
|
|
32
|
+
},
|
|
33
|
+
async getDeviceType() {
|
|
34
|
+
return safeAsync('native-device-info-device-type', deviceInfoAvailable, async () => String((await nativeDeviceInfo.getDeviceType?.()) ?? 'Handset'), 'Handset', warning);
|
|
35
|
+
},
|
|
36
|
+
getBundleId() {
|
|
37
|
+
return safeSync('native-device-info-bundle-id', deviceInfoAvailable, () => String(nativeDeviceInfo.getBundleId?.() ?? 'unknown.bundle'), 'unknown.bundle', warning);
|
|
38
|
+
},
|
|
39
|
+
getSystemVersion() {
|
|
40
|
+
return safeSync('native-device-info-system-version', deviceInfoAvailable, () => String(nativeDeviceInfo.getSystemVersion?.() ?? '0'), '0', warning);
|
|
41
|
+
},
|
|
42
|
+
getVersion() {
|
|
43
|
+
return safeSync('native-device-info-version', deviceInfoAvailable, () => String(nativeDeviceInfo.getVersion?.() ?? '0.0.0'), '0.0.0', warning);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=deviceInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DeviceInfo","hasNativeModule","safeAsync","safeSync","warning","nativeDeviceInfo","deviceInfoAvailable","FlowboardDeviceInfo","available","getBuildNumber","String","getDeviceLocale","locale","getDeviceLocales","locales","Array","isArray","length","first","languageTag","languageCode","countryCode","getDeviceType","getBundleId","getSystemVersion","getVersion"],"sourceRoot":"../../../src","sources":["native/deviceInfo.ts"],"mappings":";;AAAA,OAAOA,UAAU,MAAM,0BAA0B;AACjD,SAASC,eAAe,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,cAAW;AAEhE,MAAMC,OAAO,GACX,kHAAkH;AACpH,MAAMC,gBAAgB,GAAGL,UAAiB;AAE1C,OAAO,MAAMM,mBAAmB,GAAGL,eAAe,CAAC,cAAc,CAAC;AAElE,OAAO,MAAMM,mBAAmB,GAAG;EACjCC,SAAS,EAAEF,mBAAmB;EAC9BG,cAAcA,CAAA,EAAW;IACvB,OAAON,QAAQ,CACb,iCAAiC,EACjCG,mBAAmB,EACnB,MAAMI,MAAM,CAACL,gBAAgB,CAACI,cAAc,GAAG,CAAC,IAAI,GAAG,CAAC,EACxD,GAAG,EACHL,OACF,CAAC;EACH,CAAC;EACD,MAAMO,eAAeA,CAAA,EAAoB;IACvC,OAAOT,SAAS,CACd,2BAA2B,EAC3BI,mBAAmB,EACnB,YAAY;MACV,IAAI,OAAOD,gBAAgB,CAACM,eAAe,KAAK,UAAU,EAAE;QAC1D,MAAMC,MAAM,GAAG,MAAMP,gBAAgB,CAACM,eAAe,CAAC,CAAC;QACvD,IAAIC,MAAM,EAAE,OAAOF,MAAM,CAACE,MAAM,CAAC;MACnC;MAEA,IAAI,OAAOP,gBAAgB,CAACQ,gBAAgB,KAAK,UAAU,EAAE;QAC3D,MAAMC,OAAO,GAAG,MAAMT,gBAAgB,CAACQ,gBAAgB,CAAC,CAAC;QACzD,IAAIE,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,IAAIA,OAAO,CAACG,MAAM,GAAG,CAAC,EAAE;UAChD,MAAMC,KAAK,GAAGJ,OAAO,CAAC,CAAC,CAAC;UACxB,IAAI,OAAOI,KAAK,KAAK,QAAQ,EAAE,OAAOA,KAAK;UAC3C,IAAIA,KAAK,EAAEC,WAAW,EAAE,OAAOT,MAAM,CAACQ,KAAK,CAACC,WAAW,CAAC;UACxD,IAAID,KAAK,EAAEE,YAAY,EAAE;YACvB,OAAOF,KAAK,CAACG,WAAW,GACpB,GAAGH,KAAK,CAACE,YAAY,IAAIF,KAAK,CAACG,WAAW,EAAE,GAC5CX,MAAM,CAACQ,KAAK,CAACE,YAAY,CAAC;UAChC;QACF;MACF;MAEA,OAAO,OAAO;IAChB,CAAC,EACD,OAAO,EACPhB,OACF,CAAC;EACH,CAAC;EACD,MAAMkB,aAAaA,CAAA,EAAoB;IACrC,OAAOpB,SAAS,CACd,gCAAgC,EAChCI,mBAAmB,EACnB,YACEI,MAAM,CAAC,CAAC,MAAML,gBAAgB,CAACiB,aAAa,GAAG,CAAC,KAAK,SAAS,CAAC,EACjE,SAAS,EACTlB,OACF,CAAC;EACH,CAAC;EACDmB,WAAWA,CAAA,EAAW;IACpB,OAAOpB,QAAQ,CACb,8BAA8B,EAC9BG,mBAAmB,EACnB,MAAMI,MAAM,CAACL,gBAAgB,CAACkB,WAAW,GAAG,CAAC,IAAI,gBAAgB,CAAC,EAClE,gBAAgB,EAChBnB,OACF,CAAC;EACH,CAAC;EACDoB,gBAAgBA,CAAA,EAAW;IACzB,OAAOrB,QAAQ,CACb,mCAAmC,EACnCG,mBAAmB,EACnB,MAAMI,MAAM,CAACL,gBAAgB,CAACmB,gBAAgB,GAAG,CAAC,IAAI,GAAG,CAAC,EAC1D,GAAG,EACHpB,OACF,CAAC;EACH,CAAC;EACDqB,UAAUA,CAAA,EAAW;IACnB,OAAOtB,QAAQ,CACb,4BAA4B,EAC5BG,mBAAmB,EACnB,MAAMI,MAAM,CAACL,gBAAgB,CAACoB,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,EACxD,OAAO,EACPrB,OACF,CAAC;EACH;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import InAppReview from 'react-native-in-app-review';
|
|
4
|
+
import { hasNativeModule, safeAsync, safeSync } from "./runtime.js";
|
|
5
|
+
const warning = 'react-native-in-app-review is unavailable. Flowboard will skip in-app review prompts until native setup is fixed.';
|
|
6
|
+
const nativeInAppReview = InAppReview;
|
|
7
|
+
export const inAppReviewAvailable = hasNativeModule('InAppReviewModule', 'RNInAppReviewIOS');
|
|
8
|
+
export function isInAppReviewAvailable() {
|
|
9
|
+
return safeSync('native-in-app-review-available', inAppReviewAvailable, () => Boolean(nativeInAppReview.isAvailable?.()), false, warning);
|
|
10
|
+
}
|
|
11
|
+
export async function requestInAppReview() {
|
|
12
|
+
return safeAsync('native-in-app-review-request', inAppReviewAvailable, async () => {
|
|
13
|
+
const result = nativeInAppReview.RequestInAppReview?.();
|
|
14
|
+
return typeof result === 'boolean' ? result : Boolean(await result);
|
|
15
|
+
}, false, warning);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=inAppReview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["InAppReview","hasNativeModule","safeAsync","safeSync","warning","nativeInAppReview","inAppReviewAvailable","isInAppReviewAvailable","Boolean","isAvailable","requestInAppReview","result","RequestInAppReview"],"sourceRoot":"../../../src","sources":["native/inAppReview.ts"],"mappings":";;AAAA,OAAOA,WAAW,MAAM,4BAA4B;AACpD,SAASC,eAAe,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,cAAW;AAEhE,MAAMC,OAAO,GACX,mHAAmH;AACrH,MAAMC,iBAAiB,GAAGL,WAAkB;AAE5C,OAAO,MAAMM,oBAAoB,GAAGL,eAAe,CACjD,mBAAmB,EACnB,kBACF,CAAC;AAED,OAAO,SAASM,sBAAsBA,CAAA,EAAY;EAChD,OAAOJ,QAAQ,CACb,gCAAgC,EAChCG,oBAAoB,EACpB,MAAME,OAAO,CAACH,iBAAiB,CAACI,WAAW,GAAG,CAAC,CAAC,EAChD,KAAK,EACLL,OACF,CAAC;AACH;AAEA,OAAO,eAAeM,kBAAkBA,CAAA,EAAqB;EAC3D,OAAOR,SAAS,CACd,8BAA8B,EAC9BI,oBAAoB,EACpB,YAAY;IACV,MAAMK,MAAM,GAAGN,iBAAiB,CAACO,kBAAkB,GAAG,CAAC;IACvD,OAAO,OAAOD,MAAM,KAAK,SAAS,GAAGA,MAAM,GAAGH,OAAO,CAAC,MAAMG,MAAM,CAAC;EACrE,CAAC,EACD,KAAK,EACLP,OACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import NativeLinearGradient from 'react-native-linear-gradient';
|
|
5
|
+
import { hasViewManager, warnOnce } from "./runtime.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const warning = 'react-native-linear-gradient is unavailable. Flowboard will fall back to solid backgrounds until native setup is fixed.';
|
|
8
|
+
export const linearGradientAvailable = hasViewManager('BVLinearGradient');
|
|
9
|
+
export default function LinearGradient(props) {
|
|
10
|
+
if (!linearGradientAvailable) {
|
|
11
|
+
warnOnce('native-linear-gradient', warning);
|
|
12
|
+
const {
|
|
13
|
+
children,
|
|
14
|
+
colors,
|
|
15
|
+
style
|
|
16
|
+
} = props;
|
|
17
|
+
const backgroundColor = Array.isArray(colors) && colors.length > 0 ? colors[0] : undefined;
|
|
18
|
+
return /*#__PURE__*/_jsx(View, {
|
|
19
|
+
style: [style, backgroundColor ? {
|
|
20
|
+
backgroundColor
|
|
21
|
+
} : null],
|
|
22
|
+
children: children
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return /*#__PURE__*/_jsx(NativeLinearGradient, {
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=linearGradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","NativeLinearGradient","hasViewManager","warnOnce","jsx","_jsx","warning","linearGradientAvailable","LinearGradient","props","children","colors","style","backgroundColor","Array","isArray","length","undefined"],"sourceRoot":"../../../src","sources":["native/linearGradient.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,OAAOC,oBAAoB,MAAM,8BAA8B;AAC/D,SAASC,cAAc,EAAEC,QAAQ,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErD,MAAMC,OAAO,GACX,yHAAyH;AAE3H,OAAO,MAAMC,uBAAuB,GAAGL,cAAc,CAAC,kBAAkB,CAAC;AAEzE,eAAe,SAASM,cAAcA,CAACC,KAAU,EAAE;EACjD,IAAI,CAACF,uBAAuB,EAAE;IAC5BJ,QAAQ,CAAC,wBAAwB,EAAEG,OAAO,CAAC;IAC3C,MAAM;MAAEI,QAAQ;MAAEC,MAAM;MAAEC;IAAM,CAAC,GAAGH,KAAK;IACzC,MAAMI,eAAe,GACnBC,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,IAAIA,MAAM,CAACK,MAAM,GAAG,CAAC,GAAGL,MAAM,CAAC,CAAC,CAAC,GAAGM,SAAS;IACpE,oBACEZ,IAAA,CAACL,IAAI;MAACY,KAAK,EAAE,CAACA,KAAK,EAAEC,eAAe,GAAG;QAAEA;MAAgB,CAAC,GAAG,IAAI,CAAE;MAAAH,QAAA,EAChEA;IAAQ,CACL,CAAC;EAEX;EAEA,oBAAOL,IAAA,CAACJ,oBAAoB;IAAA,GAAKQ;EAAK,CAAG,CAAC;AAC5C","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import NativeLottieView from 'lottie-react-native';
|
|
5
|
+
import { hasViewManager, warnOnce } from "./runtime.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const warning = 'lottie-react-native is unavailable. Flowboard will reserve space for animations but skip playback until native setup is fixed.';
|
|
8
|
+
export const lottieAvailable = hasViewManager('LottieAnimationView');
|
|
9
|
+
export default function LottieView(props) {
|
|
10
|
+
if (!lottieAvailable) {
|
|
11
|
+
warnOnce('native-lottie', warning);
|
|
12
|
+
return /*#__PURE__*/_jsx(View, {
|
|
13
|
+
style: props.style
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/_jsx(NativeLottieView, {
|
|
17
|
+
...props
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=lottie.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","NativeLottieView","hasViewManager","warnOnce","jsx","_jsx","warning","lottieAvailable","LottieView","props","style"],"sourceRoot":"../../../src","sources":["native/lottie.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,SAASC,cAAc,EAAEC,QAAQ,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErD,MAAMC,OAAO,GACX,gIAAgI;AAElI,OAAO,MAAMC,eAAe,GAAGL,cAAc,CAAC,qBAAqB,CAAC;AAEpE,eAAe,SAASM,UAAUA,CAACC,KAAU,EAAE;EAC7C,IAAI,CAACF,eAAe,EAAE;IACpBJ,QAAQ,CAAC,eAAe,EAAEG,OAAO,CAAC;IAClC,oBAAOD,IAAA,CAACL,IAAI;MAACU,KAAK,EAAED,KAAK,CAACC;IAAM,CAAE,CAAC;EACrC;EAEA,oBAAOL,IAAA,CAACJ,gBAAgB;IAAA,GAAKQ;EAAK,CAAG,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import NativeMaskedView from '@react-native-masked-view/masked-view';
|
|
5
|
+
import { hasViewManager, warnOnce } from "./runtime.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const warning = '@react-native-masked-view/masked-view is unavailable. Flowboard will render masked content without the mask until native setup is fixed.';
|
|
8
|
+
export const maskedViewAvailable = hasViewManager('RNCMaskedView');
|
|
9
|
+
export default function MaskedView(props) {
|
|
10
|
+
if (!maskedViewAvailable) {
|
|
11
|
+
warnOnce('native-masked-view', warning);
|
|
12
|
+
const {
|
|
13
|
+
children,
|
|
14
|
+
...viewProps
|
|
15
|
+
} = props;
|
|
16
|
+
delete viewProps.maskElement;
|
|
17
|
+
return /*#__PURE__*/_jsx(View, {
|
|
18
|
+
...viewProps,
|
|
19
|
+
children: children
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/_jsx(NativeMaskedView, {
|
|
23
|
+
...props
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=maskedView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","NativeMaskedView","hasViewManager","warnOnce","jsx","_jsx","warning","maskedViewAvailable","MaskedView","props","children","viewProps","maskElement"],"sourceRoot":"../../../src","sources":["native/maskedView.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,OAAOC,gBAAgB,MAAM,uCAAuC;AACpE,SAASC,cAAc,EAAEC,QAAQ,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErD,MAAMC,OAAO,GACX,0IAA0I;AAE5I,OAAO,MAAMC,mBAAmB,GAAGL,cAAc,CAAC,eAAe,CAAC;AAElE,eAAe,SAASM,UAAUA,CAACC,KAAU,EAAE;EAC7C,IAAI,CAACF,mBAAmB,EAAE;IACxBJ,QAAQ,CAAC,oBAAoB,EAAEG,OAAO,CAAC;IACvC,MAAM;MAAEI,QAAQ;MAAE,GAAGC;IAAU,CAAC,GAAGF,KAAK;IACxC,OAAOE,SAAS,CAACC,WAAW;IAC5B,oBAAOP,IAAA,CAACL,IAAI;MAAA,GAAKW,SAAS;MAAAD,QAAA,EAAGA;IAAQ,CAAO,CAAC;EAC/C;EAEA,oBAAOL,IAAA,CAACJ,gBAAgB;IAAA,GAAKQ;EAAK,CAAG,CAAC;AACxC","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import NativePagerView from 'react-native-pager-view';
|
|
6
|
+
import { hasViewManager, warnOnce } from "./runtime.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const warning = 'react-native-pager-view is unavailable. Flowboard will render one page at a time without native paging until setup is fixed.';
|
|
9
|
+
export const pagerViewAvailable = hasViewManager('RNCViewPager');
|
|
10
|
+
function clampPage(index, totalPages) {
|
|
11
|
+
if (totalPages <= 0) return 0;
|
|
12
|
+
if (index < 0) return 0;
|
|
13
|
+
if (index >= totalPages) return totalPages - 1;
|
|
14
|
+
return index;
|
|
15
|
+
}
|
|
16
|
+
class PagerViewFallback extends React.Component {
|
|
17
|
+
constructor(props) {
|
|
18
|
+
super(props);
|
|
19
|
+
this.state = {
|
|
20
|
+
page: clampPage(Number(props.initialPage ?? 0), React.Children.count(props.children))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
componentDidUpdate(prevProps) {
|
|
24
|
+
if (prevProps.initialPage !== this.props.initialPage) {
|
|
25
|
+
this.setPageWithoutAnimation(Number(this.props.initialPage ?? 0));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const totalPages = React.Children.count(this.props.children);
|
|
29
|
+
const nextPage = clampPage(this.state.page, totalPages);
|
|
30
|
+
if (nextPage !== this.state.page) {
|
|
31
|
+
this.setState({
|
|
32
|
+
page: nextPage
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
setPage = index => {
|
|
37
|
+
this.updatePage(index);
|
|
38
|
+
};
|
|
39
|
+
setPageWithoutAnimation = index => {
|
|
40
|
+
this.updatePage(index);
|
|
41
|
+
};
|
|
42
|
+
updatePage(index) {
|
|
43
|
+
warnOnce('native-pager-view', warning);
|
|
44
|
+
const totalPages = React.Children.count(this.props.children);
|
|
45
|
+
const nextPage = clampPage(index, totalPages);
|
|
46
|
+
if (nextPage === this.state.page) return;
|
|
47
|
+
this.setState({
|
|
48
|
+
page: nextPage
|
|
49
|
+
});
|
|
50
|
+
this.props.onPageSelected?.({
|
|
51
|
+
nativeEvent: {
|
|
52
|
+
position: nextPage
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
render() {
|
|
57
|
+
const viewProps = {
|
|
58
|
+
...this.props
|
|
59
|
+
};
|
|
60
|
+
const {
|
|
61
|
+
children,
|
|
62
|
+
style
|
|
63
|
+
} = viewProps;
|
|
64
|
+
delete viewProps.initialPage;
|
|
65
|
+
delete viewProps.onPageSelected;
|
|
66
|
+
delete viewProps.orientation;
|
|
67
|
+
delete viewProps.overdrag;
|
|
68
|
+
delete viewProps.pageMargin;
|
|
69
|
+
const pages = React.Children.toArray(children);
|
|
70
|
+
return /*#__PURE__*/_jsx(View, {
|
|
71
|
+
...viewProps,
|
|
72
|
+
style: style,
|
|
73
|
+
children: pages[this.state.page] ?? null
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const PagerViewComponent = pagerViewAvailable ? NativePagerView : PagerViewFallback;
|
|
78
|
+
export default PagerViewComponent;
|
|
79
|
+
//# sourceMappingURL=pagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","NativePagerView","hasViewManager","warnOnce","jsx","_jsx","warning","pagerViewAvailable","clampPage","index","totalPages","PagerViewFallback","Component","constructor","props","state","page","Number","initialPage","Children","count","children","componentDidUpdate","prevProps","setPageWithoutAnimation","nextPage","setState","setPage","updatePage","onPageSelected","nativeEvent","position","render","viewProps","style","orientation","overdrag","pageMargin","pages","toArray","PagerViewComponent"],"sourceRoot":"../../../src","sources":["native/pagerView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { openSettings as nativeOpenSettings, PERMISSIONS as nativePermissions, request as nativeRequest, requestNotifications as nativeRequestNotifications, RESULTS as nativeResults } from 'react-native-permissions';
|
|
4
|
+
import { hasNativeModule, safeAsync } from "./runtime.js";
|
|
5
|
+
const warning = 'react-native-permissions is unavailable. Permission actions will return unavailable until native setup is fixed.';
|
|
6
|
+
export const permissionsAvailable = hasNativeModule('RNPermissions');
|
|
7
|
+
export const RESULTS = nativeResults ?? {
|
|
8
|
+
BLOCKED: 'blocked',
|
|
9
|
+
GRANTED: 'granted',
|
|
10
|
+
LIMITED: 'limited',
|
|
11
|
+
UNAVAILABLE: 'unavailable'
|
|
12
|
+
};
|
|
13
|
+
export const PERMISSIONS = nativePermissions ?? {
|
|
14
|
+
ANDROID: {},
|
|
15
|
+
IOS: {}
|
|
16
|
+
};
|
|
17
|
+
export async function openSettings() {
|
|
18
|
+
await safeAsync('native-permissions-open-settings', permissionsAvailable, async () => {
|
|
19
|
+
await nativeOpenSettings();
|
|
20
|
+
}, undefined, warning);
|
|
21
|
+
}
|
|
22
|
+
export async function request(permission) {
|
|
23
|
+
return safeAsync('native-permissions-request', permissionsAvailable && permission.length > 0, async () => nativeRequest(permission), RESULTS.UNAVAILABLE ?? 'unavailable', warning);
|
|
24
|
+
}
|
|
25
|
+
export async function requestNotifications(options) {
|
|
26
|
+
return safeAsync('native-permissions-request-notifications', permissionsAvailable, async () => nativeRequestNotifications(options), {
|
|
27
|
+
status: RESULTS.UNAVAILABLE ?? 'unavailable'
|
|
28
|
+
}, warning);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=permissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["openSettings","nativeOpenSettings","PERMISSIONS","nativePermissions","request","nativeRequest","requestNotifications","nativeRequestNotifications","RESULTS","nativeResults","hasNativeModule","safeAsync","warning","permissionsAvailable","BLOCKED","GRANTED","LIMITED","UNAVAILABLE","ANDROID","IOS","undefined","permission","length","options","status"],"sourceRoot":"../../../src","sources":["native/permissions.ts"],"mappings":";;AAAA,SACEA,YAAY,IAAIC,kBAAkB,EAClCC,WAAW,IAAIC,iBAAiB,EAChCC,OAAO,IAAIC,aAAa,EACxBC,oBAAoB,IAAIC,0BAA0B,EAClDC,OAAO,IAAIC,aAAa,QACnB,0BAA0B;AACjC,SAASC,eAAe,EAAEC,SAAS,QAAQ,cAAW;AAEtD,MAAMC,OAAO,GACX,kHAAkH;AAEpH,OAAO,MAAMC,oBAAoB,GAAGH,eAAe,CAAC,eAAe,CAAC;AAEpE,OAAO,MAAMF,OAAO,GAAGC,aAAa,IAAI;EACtCK,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE;AACf,CAAC;AAED,OAAO,MAAMf,WAAW,GAAGC,iBAAiB,IAAI;EAC9Ce,OAAO,EAAE,CAAC,CAAC;EACXC,GAAG,EAAE,CAAC;AACR,CAAC;AAED,OAAO,eAAenB,YAAYA,CAAA,EAAkB;EAClD,MAAMW,SAAS,CACb,kCAAkC,EAClCE,oBAAoB,EACpB,YAAY;IACV,MAAMZ,kBAAkB,CAAC,CAAC;EAC5B,CAAC,EACDmB,SAAS,EACTR,OACF,CAAC;AACH;AAEA,OAAO,eAAeR,OAAOA,CAACiB,UAAkB,EAAmB;EACjE,OAAOV,SAAS,CACd,4BAA4B,EAC5BE,oBAAoB,IAAIQ,UAAU,CAACC,MAAM,GAAG,CAAC,EAC7C,YAAYjB,aAAa,CAACgB,UAAU,CAAC,EACrCb,OAAO,CAACS,WAAW,IAAI,aAAa,EACpCL,OACF,CAAC;AACH;AAEA,OAAO,eAAeN,oBAAoBA,CACxCiB,OAAkB,EACW;EAC7B,OAAOZ,SAAS,CACd,0CAA0C,EAC1CE,oBAAoB,EACpB,YAAYN,0BAA0B,CAACgB,OAAO,CAAC,EAC/C;IAAEC,MAAM,EAAEhB,OAAO,CAACS,WAAW,IAAI;EAAc,CAAC,EAChDL,OACF,CAAC;AACH","ignoreList":[]}
|