flowboard-react 0.6.12 → 0.6.13
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/lib/module/Flowboard.js +7 -2
- package/lib/module/Flowboard.js.map +1 -1
- package/lib/module/components/FlowboardRenderer.js +27 -7
- package/lib/module/components/FlowboardRenderer.js.map +1 -1
- package/lib/module/core/analyticsManager.js +8 -2
- package/lib/module/core/analyticsManager.js.map +1 -1
- package/lib/module/core/apiConfig.js +3 -0
- package/lib/module/core/apiConfig.js.map +1 -1
- package/lib/module/native/haptics.js +45 -0
- package/lib/module/native/haptics.js.map +1 -0
- package/lib/typescript/src/Flowboard.d.ts.map +1 -1
- package/lib/typescript/src/components/FlowboardRenderer.d.ts.map +1 -1
- package/lib/typescript/src/core/analyticsManager.d.ts +2 -0
- package/lib/typescript/src/core/analyticsManager.d.ts.map +1 -1
- package/lib/typescript/src/core/apiConfig.d.ts +1 -0
- package/lib/typescript/src/core/apiConfig.d.ts.map +1 -1
- package/lib/typescript/src/native/haptics.d.ts +2 -0
- package/lib/typescript/src/native/haptics.d.ts.map +1 -0
- package/package.json +9 -1
- package/src/Flowboard.ts +7 -0
- package/src/components/FlowboardRenderer.tsx +25 -8
- package/src/core/analyticsManager.ts +17 -5
- package/src/core/apiConfig.ts +4 -0
- package/src/native/haptics.ts +72 -0
package/lib/module/Flowboard.js
CHANGED
|
@@ -28,7 +28,8 @@ export class Flowboard {
|
|
|
28
28
|
const clientContext = await ClientContext.create();
|
|
29
29
|
AnalyticsManager.instance.configure({
|
|
30
30
|
enabled: params.enableAnalytics ?? true,
|
|
31
|
-
context: clientContext
|
|
31
|
+
context: clientContext,
|
|
32
|
+
apiToken
|
|
32
33
|
});
|
|
33
34
|
} catch (error) {
|
|
34
35
|
Flowboard.log(`Failed to configure analytics: ${String(error)}`);
|
|
@@ -137,10 +138,14 @@ export class Flowboard {
|
|
|
137
138
|
}
|
|
138
139
|
static async configureAnalyticsForLaunch(enableAnalytics) {
|
|
139
140
|
try {
|
|
141
|
+
if (!Flowboard.apiToken) {
|
|
142
|
+
throw new Error('Flowboard.init() must be called before configuring analytics');
|
|
143
|
+
}
|
|
140
144
|
const context = AnalyticsManager.instance.clientContextSnapshot ?? (await ClientContext.create());
|
|
141
145
|
AnalyticsManager.instance.configure({
|
|
142
146
|
enabled: enableAnalytics ?? true,
|
|
143
|
-
context
|
|
147
|
+
context,
|
|
148
|
+
apiToken: Flowboard.apiToken
|
|
144
149
|
});
|
|
145
150
|
} catch (error) {
|
|
146
151
|
Flowboard.log(`Failed to configure analytics for launch: ${String(error)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Alert","ClientContext","ResolverService","OnboardingRepository","AnalyticsManager","Flowboard","apiToken","debug","repository","service","initPromise","listeners","Set","subscribe","listener","add","delete","init","params","trim","Error","log","clientContext","create","instance","configure","enabled","enableAnalytics","context","error","String","initialize","reinit","clearLocalCaches","fetchAndSave","launchOnboarding","options","configureAnalyticsForLaunch","data","getOnboardingJson","alert","launchResolvedOnboarding","launchOnboardingById","onboardingId","normalizedOnboardingId","locale","resolveLocale","fetchOnboardingById","version","shouldResumeProgress","resumeProgress","alwaysRestart","clearProgress","initialStep","initialFormData","flowId","flow_id","savedStep","getProgressStepForFlow","savedFormData","getProgressFormDataForFlow","undefined","screens","Array","isArray","length","maxIndex","Object","keys","emitLaunch","clientContextSnapshot","requestedLocale","normalized","cached","startSession","flowData","startTime","Date","now","installId","bundleId","json","fetchOnboardingJson","saveOnboardingJson","duration","trackOnboardLoaded","durationMs","Promise","all","clearOnboardingJson","payload","forEach","message","console"],"sourceRoot":"../../src","sources":["Flowboard.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,SAASC,aAAa,QAAQ,yBAAsB;AACpD,SAASC,eAAe,QAAQ,2BAAwB;AACxD,SAASC,oBAAoB,QAAQ,gCAA6B;AAClE,SAASC,gBAAgB,QAAQ,4BAAyB;AAgB1D,OAAO,MAAMC,SAAS,CAAC;EACrB,OAAeC,QAAQ,GAAkB,IAAI;EAC7C,OAAeC,KAAK,GAAG,KAAK;EAC5B,OAAeC,UAAU,GAAG,IAAIL,oBAAoB,CAAC,CAAC;EACtD,OAAeM,OAAO,GAAG,IAAIP,eAAe,CAAC,CAAC;EAC9C,OAAeQ,WAAW,GAAyB,IAAI;EACvD,OAAeC,SAAS,GAAG,IAAIC,GAAG,CAAiB,CAAC;EAEpD,OAAOC,SAASA,CAACC,QAAwB,EAAc;IACrDT,SAAS,CAACM,SAAS,CAACI,GAAG,CAACD,QAAQ,CAAC;IACjC,OAAO,MAAMT,SAAS,CAACM,SAAS,CAACK,MAAM,CAACF,QAAQ,CAAC;EACnD;EAEA,aAAaG,IAAIA,CAACC,MAIjB,EAAiB;IAChB,MAAMZ,QAAQ,GAAGY,MAAM,CAACZ,QAAQ,CAACa,IAAI,CAAC,CAAC;IACvC,IAAI,CAACb,QAAQ,EAAE;MACb,MAAM,IAAIc,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEAf,SAAS,CAACC,QAAQ,GAAGA,QAAQ;IAC7BD,SAAS,CAACE,KAAK,GAAGW,MAAM,CAACX,KAAK,IAAI,KAAK;IAEvCF,SAAS,CAACgB,GAAG,CAAC,6BAA6B,CAAC;IAE5C,IAAI;MACF,MAAMC,aAAa,GAAG,MAAMrB,aAAa,CAACsB,MAAM,CAAC,CAAC;MAClDnB,gBAAgB,CAACoB,QAAQ,CAACC,SAAS,CAAC;QAClCC,OAAO,EAAER,MAAM,CAACS,eAAe,IAAI,IAAI;QACvCC,OAAO,EAAEN;
|
|
1
|
+
{"version":3,"names":["Alert","ClientContext","ResolverService","OnboardingRepository","AnalyticsManager","Flowboard","apiToken","debug","repository","service","initPromise","listeners","Set","subscribe","listener","add","delete","init","params","trim","Error","log","clientContext","create","instance","configure","enabled","enableAnalytics","context","error","String","initialize","reinit","clearLocalCaches","fetchAndSave","launchOnboarding","options","configureAnalyticsForLaunch","data","getOnboardingJson","alert","launchResolvedOnboarding","launchOnboardingById","onboardingId","normalizedOnboardingId","locale","resolveLocale","fetchOnboardingById","version","shouldResumeProgress","resumeProgress","alwaysRestart","clearProgress","initialStep","initialFormData","flowId","flow_id","savedStep","getProgressStepForFlow","savedFormData","getProgressFormDataForFlow","undefined","screens","Array","isArray","length","maxIndex","Object","keys","emitLaunch","clientContextSnapshot","requestedLocale","normalized","cached","startSession","flowData","startTime","Date","now","installId","bundleId","json","fetchOnboardingJson","saveOnboardingJson","duration","trackOnboardLoaded","durationMs","Promise","all","clearOnboardingJson","payload","forEach","message","console"],"sourceRoot":"../../src","sources":["Flowboard.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useEffect, useMemo, useState } from 'react';
|
|
4
|
-
import { Animated, KeyboardAvoidingView, Platform, Pressable, ScrollView, StyleSheet, Text, TextInput, View, Image
|
|
4
|
+
import { Animated, KeyboardAvoidingView, Platform, Pressable, ScrollView, StyleSheet, Text, TextInput, View, Image } from 'react-native';
|
|
5
5
|
import MaskInput from 'react-native-mask-input';
|
|
6
6
|
import LinearGradient from "../native/linearGradient.js";
|
|
7
7
|
import LottieView from "../native/lottie.js";
|
|
@@ -9,6 +9,7 @@ import MaskedView from "../native/maskedView.js";
|
|
|
9
9
|
import PagerView from "../native/pagerView.js";
|
|
10
10
|
import { useSafeAreaInsets } from "../native/safeAreaContext.js";
|
|
11
11
|
import Svg, { Circle, G, Line, Polygon, SvgText } from "../native/svg.js";
|
|
12
|
+
import { triggerSelectionHaptic } from "../native/haptics.js";
|
|
12
13
|
import { insetsToStyle, insetsToMarginStyle, parseAlignment, parseColor, parseCrossAlignment, parseDimension, parseFlexAlignment, parseFontWeight, parseInsets, parseResizeMode, parseTextAlign, parseTextDecoration, resolveNumericValue, resolveText } from "../utils/flowboardUtils.js";
|
|
13
14
|
import { resolveFontAwesomeIcon, FontAwesome6 } from "../core/fontAwesome.js";
|
|
14
15
|
import { useSliderRegistry } from "./widgets/sliderRegistry.js";
|
|
@@ -2497,9 +2498,6 @@ function WheelPicker({
|
|
|
2497
2498
|
onAction,
|
|
2498
2499
|
buildWidget: _buildWidget
|
|
2499
2500
|
}) {
|
|
2500
|
-
const triggerLightHaptic = React.useCallback(() => {
|
|
2501
|
-
Vibration.vibrate(8);
|
|
2502
|
-
}, []);
|
|
2503
2501
|
const multiSelect = properties.multiSelect === true;
|
|
2504
2502
|
const [selectedValues, setSelectedValues] = React.useState(() => {
|
|
2505
2503
|
if (initialValue === null || initialValue === undefined) return [];
|
|
@@ -2525,6 +2523,9 @@ function WheelPicker({
|
|
|
2525
2523
|
const wheelScrollY = React.useRef(new Animated.Value(0)).current;
|
|
2526
2524
|
const wheelScrollRef = React.useRef(null);
|
|
2527
2525
|
const lastCommittedWheelValue = React.useRef(null);
|
|
2526
|
+
const lastWheelHapticIndex = React.useRef(null);
|
|
2527
|
+
const lastWheelHapticAtMs = React.useRef(0);
|
|
2528
|
+
const isWheelInteractionActive = React.useRef(false);
|
|
2528
2529
|
const toggleSelection = value => {
|
|
2529
2530
|
setSelectedValues(prev => {
|
|
2530
2531
|
let next = [...prev];
|
|
@@ -2588,7 +2589,6 @@ function WheelPicker({
|
|
|
2588
2589
|
});
|
|
2589
2590
|
if (lastCommittedWheelValue.current !== value) {
|
|
2590
2591
|
lastCommittedWheelValue.current = value;
|
|
2591
|
-
triggerLightHaptic();
|
|
2592
2592
|
onChanged(value);
|
|
2593
2593
|
if (properties.autoGoNext === true) {
|
|
2594
2594
|
requestAnimationFrame(() => onAction('next', {
|
|
@@ -2596,10 +2596,11 @@ function WheelPicker({
|
|
|
2596
2596
|
}));
|
|
2597
2597
|
}
|
|
2598
2598
|
}
|
|
2599
|
-
}, [clampWheelIndex, onAction, onChanged, properties.autoGoNext, resolvedOptions
|
|
2599
|
+
}, [clampWheelIndex, onAction, onChanged, properties.autoGoNext, resolvedOptions]);
|
|
2600
2600
|
React.useEffect(() => {
|
|
2601
2601
|
if (layout !== 'wheel' || resolvedOptions.length === 0) return;
|
|
2602
2602
|
const selectedIndex = getWheelSelectedIndex();
|
|
2603
|
+
lastWheelHapticIndex.current = selectedIndex;
|
|
2603
2604
|
const offsetY = selectedIndex * wheelRowStride;
|
|
2604
2605
|
requestAnimationFrame(() => {
|
|
2605
2606
|
wheelScrollRef.current?.scrollTo({
|
|
@@ -2709,6 +2710,7 @@ function WheelPicker({
|
|
|
2709
2710
|
const handleWheelMomentumEnd = event => {
|
|
2710
2711
|
const offsetY = Number(event?.nativeEvent?.contentOffset?.y ?? 0);
|
|
2711
2712
|
const settledIndex = clampWheelIndex(Math.round(offsetY / wheelRowStride));
|
|
2713
|
+
isWheelInteractionActive.current = false;
|
|
2712
2714
|
const targetOffset = settledIndex * wheelRowStride;
|
|
2713
2715
|
if (Math.abs(targetOffset - offsetY) > 0.5) {
|
|
2714
2716
|
wheelScrollRef.current?.scrollTo({
|
|
@@ -2718,6 +2720,17 @@ function WheelPicker({
|
|
|
2718
2720
|
}
|
|
2719
2721
|
commitWheelSelection(settledIndex);
|
|
2720
2722
|
};
|
|
2723
|
+
const handleWheelScroll = event => {
|
|
2724
|
+
if (!isWheelInteractionActive.current) return;
|
|
2725
|
+
const offsetY = Number(event?.nativeEvent?.contentOffset?.y ?? 0);
|
|
2726
|
+
const index = clampWheelIndex(Math.round(offsetY / wheelRowStride));
|
|
2727
|
+
if (lastWheelHapticIndex.current === index) return;
|
|
2728
|
+
const now = Date.now();
|
|
2729
|
+
if (now - lastWheelHapticAtMs.current < 35) return;
|
|
2730
|
+
lastWheelHapticAtMs.current = now;
|
|
2731
|
+
lastWheelHapticIndex.current = index;
|
|
2732
|
+
triggerSelectionHaptic();
|
|
2733
|
+
};
|
|
2721
2734
|
return /*#__PURE__*/_jsxs(View, {
|
|
2722
2735
|
style: {
|
|
2723
2736
|
width: '100%',
|
|
@@ -2737,6 +2750,12 @@ function WheelPicker({
|
|
|
2737
2750
|
snapToInterval: wheelRowStride,
|
|
2738
2751
|
snapToAlignment: "start",
|
|
2739
2752
|
disableIntervalMomentum: false,
|
|
2753
|
+
onScrollBeginDrag: () => {
|
|
2754
|
+
isWheelInteractionActive.current = true;
|
|
2755
|
+
},
|
|
2756
|
+
onMomentumScrollBegin: () => {
|
|
2757
|
+
isWheelInteractionActive.current = true;
|
|
2758
|
+
},
|
|
2740
2759
|
onMomentumScrollEnd: handleWheelMomentumEnd,
|
|
2741
2760
|
contentContainerStyle: {
|
|
2742
2761
|
width: '100%',
|
|
@@ -2750,7 +2769,8 @@ function WheelPicker({
|
|
|
2750
2769
|
}
|
|
2751
2770
|
}
|
|
2752
2771
|
}], {
|
|
2753
|
-
useNativeDriver: true
|
|
2772
|
+
useNativeDriver: true,
|
|
2773
|
+
listener: handleWheelScroll
|
|
2754
2774
|
}),
|
|
2755
2775
|
scrollEventThrottle: 16,
|
|
2756
2776
|
children: resolvedOptions.map((option, index) => {
|