@revrag-ai/embed-react-native 1.0.26 → 1.0.28
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 +5 -0
- package/android/build.gradle +1 -0
- package/dist/commonjs/api/api.js.map +1 -1
- package/dist/commonjs/assets/fonts/PlaywriteNZBasic-ExtraLight.ttf +0 -0
- package/dist/commonjs/assets/fonts/PlaywriteNZBasic-Light.ttf +0 -0
- package/dist/commonjs/assets/fonts/PlaywriteNZBasic-Regular.ttf +0 -0
- package/dist/commonjs/assets/fonts/PlaywriteNZBasic-Thin.ttf +0 -0
- package/dist/commonjs/components/DynamicComponent/Typewriter.js +124 -0
- package/dist/commonjs/components/DynamicComponent/Typewriter.js.map +1 -0
- package/dist/commonjs/components/Embed/EmbedButton.js +362 -113
- package/dist/commonjs/components/Embed/EmbedButton.js.map +1 -1
- package/dist/commonjs/components/styles/EmbedButton.style.js +112 -158
- package/dist/commonjs/components/styles/EmbedButton.style.js.map +1 -1
- package/dist/commonjs/context/EmbedProvider.js +187 -14
- package/dist/commonjs/context/EmbedProvider.js.map +1 -1
- package/dist/commonjs/events/clickEventTracker.js +210 -0
- package/dist/commonjs/events/clickEventTracker.js.map +1 -0
- package/dist/commonjs/events/embed.event.js +11 -3
- package/dist/commonjs/events/embed.event.js.map +1 -1
- package/dist/commonjs/hooks/EmbedButton.animations.js +115 -15
- package/dist/commonjs/hooks/EmbedButton.animations.js.map +1 -1
- package/dist/commonjs/hooks/EmbedButton.helpers.js +11 -3
- package/dist/commonjs/hooks/EmbedButton.helpers.js.map +1 -1
- package/dist/commonjs/hooks/EmbedButton.hooks.js +17 -11
- package/dist/commonjs/hooks/EmbedButton.hooks.js.map +1 -1
- package/dist/commonjs/hooks/voiceagent.js +34 -12
- package/dist/commonjs/hooks/voiceagent.js.map +1 -1
- package/dist/commonjs/index.js +6 -2
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/utils/constant.js +6 -1
- package/dist/commonjs/utils/constant.js.map +1 -1
- package/dist/commonjs/utils/permision.js +42 -1
- package/dist/commonjs/utils/permision.js.map +1 -1
- package/dist/commonjs/utils/reanimated.helper.js +4 -0
- package/dist/commonjs/utils/reanimated.helper.js.map +1 -1
- package/dist/module/api/api.js.map +1 -1
- package/dist/module/assets/fonts/PlaywriteNZBasic-ExtraLight.ttf +0 -0
- package/dist/module/assets/fonts/PlaywriteNZBasic-Light.ttf +0 -0
- package/dist/module/assets/fonts/PlaywriteNZBasic-Regular.ttf +0 -0
- package/dist/module/assets/fonts/PlaywriteNZBasic-Thin.ttf +0 -0
- package/dist/module/components/DynamicComponent/Typewriter.js +122 -0
- package/dist/module/components/DynamicComponent/Typewriter.js.map +1 -0
- package/dist/module/components/Embed/EmbedButton.js +367 -118
- package/dist/module/components/Embed/EmbedButton.js.map +1 -1
- package/dist/module/components/styles/EmbedButton.style.js +111 -157
- package/dist/module/components/styles/EmbedButton.style.js.map +1 -1
- package/dist/module/context/EmbedProvider.js +187 -14
- package/dist/module/context/EmbedProvider.js.map +1 -1
- package/dist/module/events/clickEventTracker.js +199 -0
- package/dist/module/events/clickEventTracker.js.map +1 -0
- package/dist/module/events/embed.event.js +11 -3
- package/dist/module/events/embed.event.js.map +1 -1
- package/dist/module/hooks/EmbedButton.animations.js +109 -13
- package/dist/module/hooks/EmbedButton.animations.js.map +1 -1
- package/dist/module/hooks/EmbedButton.helpers.js +10 -2
- package/dist/module/hooks/EmbedButton.helpers.js.map +1 -1
- package/dist/module/hooks/EmbedButton.hooks.js +17 -11
- package/dist/module/hooks/EmbedButton.hooks.js.map +1 -1
- package/dist/module/hooks/voiceagent.js +34 -12
- package/dist/module/hooks/voiceagent.js.map +1 -1
- package/dist/module/index.js +8 -3
- package/dist/module/index.js.map +1 -1
- package/dist/module/utils/constant.js +6 -1
- package/dist/module/utils/constant.js.map +1 -1
- package/dist/module/utils/permision.js +42 -1
- package/dist/module/utils/permision.js.map +1 -1
- package/dist/module/utils/reanimated.helper.js +4 -0
- package/dist/module/utils/reanimated.helper.js.map +1 -1
- package/dist/typescript/src/api/api.d.ts.map +1 -1
- package/dist/typescript/src/components/DynamicComponent/Typewriter.d.ts +15 -0
- package/dist/typescript/src/components/DynamicComponent/Typewriter.d.ts.map +1 -0
- package/dist/typescript/src/components/Embed/EmbedButton.d.ts +7 -1
- package/dist/typescript/src/components/Embed/EmbedButton.d.ts.map +1 -1
- package/dist/typescript/src/components/styles/EmbedButton.style.d.ts +22 -114
- package/dist/typescript/src/components/styles/EmbedButton.style.d.ts.map +1 -1
- package/dist/typescript/src/context/EmbedProvider.d.ts +30 -0
- package/dist/typescript/src/context/EmbedProvider.d.ts.map +1 -1
- package/dist/typescript/src/events/__tests__/agent-event-emitter.test.d.ts +5 -0
- package/dist/typescript/src/events/__tests__/agent-event-emitter.test.d.ts.map +1 -0
- package/dist/typescript/src/events/__tests__/clickEventTracker.test.d.ts +5 -0
- package/dist/typescript/src/events/__tests__/clickEventTracker.test.d.ts.map +1 -0
- package/dist/typescript/src/events/__tests__/embed.event.test.d.ts +5 -0
- package/dist/typescript/src/events/__tests__/embed.event.test.d.ts.map +1 -0
- package/dist/typescript/src/events/__tests__/embed.validators.test.d.ts +5 -0
- package/dist/typescript/src/events/__tests__/embed.validators.test.d.ts.map +1 -0
- package/dist/typescript/src/events/clickEventTracker.d.ts +70 -0
- package/dist/typescript/src/events/clickEventTracker.d.ts.map +1 -0
- package/dist/typescript/src/events/embed.event.d.ts.map +1 -1
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts +29 -6
- package/dist/typescript/src/hooks/EmbedButton.animations.d.ts.map +1 -1
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts +60 -8
- package/dist/typescript/src/hooks/EmbedButton.helpers.d.ts.map +1 -1
- package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts +4 -2
- package/dist/typescript/src/hooks/EmbedButton.hooks.d.ts.map +1 -1
- package/dist/typescript/src/hooks/types/voiceAgent.types.d.ts +2 -0
- package/dist/typescript/src/hooks/types/voiceAgent.types.d.ts.map +1 -1
- package/dist/typescript/src/hooks/voiceagent.d.ts.map +1 -1
- package/dist/typescript/src/index.d.ts +8 -9
- package/dist/typescript/src/index.d.ts.map +1 -1
- package/dist/typescript/src/utils/constant.d.ts +1 -1
- package/dist/typescript/src/utils/constant.d.ts.map +1 -1
- package/dist/typescript/src/utils/permision.d.ts.map +1 -1
- package/dist/typescript/src/utils/reanimated.helper.d.ts +2 -0
- package/dist/typescript/src/utils/reanimated.helper.d.ts.map +1 -1
- package/package.json +3 -8
- package/react-native.config.js +1 -0
- package/revrag-ai-embed-react-native.podspec +1 -0
- package/src/assets/fonts/PlaywriteNZBasic-ExtraLight.ttf +0 -0
- package/src/assets/fonts/PlaywriteNZBasic-Light.ttf +0 -0
- package/src/assets/fonts/PlaywriteNZBasic-Regular.ttf +0 -0
- package/src/assets/fonts/PlaywriteNZBasic-Thin.ttf +0 -0
|
@@ -14,9 +14,11 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
17
|
+
import { Animated, Easing, StyleSheet } from 'react-native';
|
|
17
18
|
import { EmbedButton } from "../components/Embed/EmbedButton.js";
|
|
18
19
|
import Embed, { EventKeys } from "../events/embed.event.js";
|
|
19
20
|
import { setAgentData } from "../store/store.key.js";
|
|
21
|
+
import { install as installClickEventTracker, setWidgetVisible as setClickTrackerWidgetVisible } from "../events/clickEventTracker.js";
|
|
20
22
|
|
|
21
23
|
/* ============================================================================
|
|
22
24
|
* TYPE DEFINITIONS
|
|
@@ -27,6 +29,10 @@ import { setAgentData } from "../store/store.key.js";
|
|
|
27
29
|
* @interface EmbedProviderProps
|
|
28
30
|
*/
|
|
29
31
|
|
|
32
|
+
/**
|
|
33
|
+
* Controls when the delay is applied within a group
|
|
34
|
+
*/
|
|
35
|
+
|
|
30
36
|
/**
|
|
31
37
|
* Represents the complete hierarchical structure of the current navigation state
|
|
32
38
|
* @interface RouteHierarchy
|
|
@@ -54,6 +60,24 @@ const DEFAULT_INCLUDED_SCREENS = [];
|
|
|
54
60
|
*/
|
|
55
61
|
const NAVIGATION_LISTENER_DELAY = 1000;
|
|
56
62
|
|
|
63
|
+
/** Animation duration for EmbedButton show/hide (ms) */
|
|
64
|
+
const EMBED_BUTTON_ANIMATION_DURATION = 250;
|
|
65
|
+
|
|
66
|
+
/** Default inset for EmbedButton when no group or config provides one */
|
|
67
|
+
const DEFAULT_EMBED_BUTTON_INSET = {
|
|
68
|
+
right: 16,
|
|
69
|
+
bottom: 20
|
|
70
|
+
};
|
|
71
|
+
const styles = StyleSheet.create({
|
|
72
|
+
embedButtonWrapper: {
|
|
73
|
+
position: 'absolute',
|
|
74
|
+
top: 0,
|
|
75
|
+
left: 0,
|
|
76
|
+
right: 0,
|
|
77
|
+
bottom: 0
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
57
81
|
/* ============================================================================
|
|
58
82
|
* UTILITY FUNCTIONS - NAVIGATION HIERARCHY
|
|
59
83
|
* ========================================================================== */
|
|
@@ -467,8 +491,14 @@ export const EmbedProvider = ({
|
|
|
467
491
|
children,
|
|
468
492
|
navigationRef,
|
|
469
493
|
includeScreens = DEFAULT_INCLUDED_SCREENS,
|
|
470
|
-
appVersion: _appVersion
|
|
494
|
+
appVersion: _appVersion,
|
|
495
|
+
embedButtonDelayMs = 0,
|
|
496
|
+
embedButtonVisibilityConfig
|
|
471
497
|
}) => {
|
|
498
|
+
// Patch touchables as early as possible (before children render) so all screens
|
|
499
|
+
// use the patched components. Handling is gated by setWidgetVisible in useEffect.
|
|
500
|
+
installClickEventTracker();
|
|
501
|
+
|
|
472
502
|
// ========== Refs ==========
|
|
473
503
|
|
|
474
504
|
/**
|
|
@@ -484,20 +514,40 @@ export const EmbedProvider = ({
|
|
|
484
514
|
*/
|
|
485
515
|
const isMountedRef = useRef(true);
|
|
486
516
|
|
|
517
|
+
/** Pending EmbedButton delay timer; cleared on screen change when needed */
|
|
518
|
+
const embedButtonTimerRef = useRef(null);
|
|
519
|
+
const embedButtonDelayContextRef = useRef(null);
|
|
520
|
+
const currentGroupIdRef = useRef(undefined);
|
|
521
|
+
const sessionShownGroupsRef = useRef(new Set());
|
|
522
|
+
const showEmbedButtonRef = useRef(false);
|
|
523
|
+
|
|
487
524
|
// ========== State ==========
|
|
488
525
|
|
|
489
526
|
/** Whether the EmbedButton should be visible on the current screen */
|
|
490
527
|
const [showEmbedButton, setShowEmbedButton] = useState(false);
|
|
528
|
+
/** Whether the EmbedButton is mounted (for animation in/out) */
|
|
529
|
+
const [isEmbedButtonMounted, setIsEmbedButtonMounted] = useState(false);
|
|
530
|
+
/** Optional inset for EmbedButton position (from group or default) */
|
|
531
|
+
const [embedButtonInset, setEmbedButtonInset] = useState();
|
|
532
|
+
|
|
533
|
+
// ========== Animation ==========
|
|
534
|
+
const embedButtonAnim = useRef(new Animated.Value(0)).current;
|
|
535
|
+
const embedButtonAnimationRef = useRef(null);
|
|
536
|
+
useEffect(() => {
|
|
537
|
+
showEmbedButtonRef.current = showEmbedButton;
|
|
538
|
+
}, [showEmbedButton]);
|
|
491
539
|
|
|
492
540
|
// ========== Memoized Values ==========
|
|
493
541
|
|
|
494
542
|
/**
|
|
495
|
-
* Included screens
|
|
496
|
-
*
|
|
543
|
+
* Included screens: union of includeScreens and all screens from groups.
|
|
544
|
+
* When groups are provided, screens in any group are considered included.
|
|
497
545
|
*/
|
|
498
546
|
const allIncludedScreens = useMemo(() => {
|
|
499
|
-
|
|
500
|
-
|
|
547
|
+
const set = new Set(includeScreens.filter(Boolean));
|
|
548
|
+
embedButtonVisibilityConfig?.groups?.forEach(g => g.screens.forEach(s => set.add(s)));
|
|
549
|
+
return Array.from(set);
|
|
550
|
+
}, [includeScreens, embedButtonVisibilityConfig?.groups]);
|
|
501
551
|
|
|
502
552
|
// ========== Effects ==========
|
|
503
553
|
|
|
@@ -516,17 +566,62 @@ export const EmbedProvider = ({
|
|
|
516
566
|
return;
|
|
517
567
|
}
|
|
518
568
|
const routeInfo = getRouteHierarchy(state);
|
|
519
|
-
// Extract current screen name from navigation state
|
|
520
569
|
const screenName = routeInfo?.currentScreen || navRef.current.getCurrentRoute()?.name || '';
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
570
|
+
const clearEmbedButtonTimer = () => {
|
|
571
|
+
if (embedButtonTimerRef.current) {
|
|
572
|
+
clearTimeout(embedButtonTimerRef.current);
|
|
573
|
+
embedButtonTimerRef.current = null;
|
|
574
|
+
}
|
|
575
|
+
embedButtonDelayContextRef.current = null;
|
|
576
|
+
};
|
|
524
577
|
const hasIncludeFilter = allIncludedScreens.length > 0;
|
|
525
578
|
const isIncluded = allIncludedScreens.includes(screenName);
|
|
526
|
-
const
|
|
527
|
-
// Only update state if component is still mounted
|
|
579
|
+
const shouldIncludeButton = screenName !== '' && (!hasIncludeFilter || isIncluded);
|
|
528
580
|
if (isMountedRef.current) {
|
|
529
|
-
|
|
581
|
+
if (!shouldIncludeButton) {
|
|
582
|
+
clearEmbedButtonTimer();
|
|
583
|
+
currentGroupIdRef.current = undefined;
|
|
584
|
+
setEmbedButtonInset(undefined);
|
|
585
|
+
setShowEmbedButton(false);
|
|
586
|
+
} else {
|
|
587
|
+
const groupMatch = embedButtonVisibilityConfig?.groups?.find(g => g.screens.includes(screenName));
|
|
588
|
+
const delayMs = groupMatch?.delayMs ?? embedButtonVisibilityConfig?.defaultDelayMs ?? embedButtonDelayMs;
|
|
589
|
+
const delayPolicy = groupMatch?.delayPolicy ?? 'perScreen';
|
|
590
|
+
const continuity = groupMatch?.continuity ?? 'perScreen';
|
|
591
|
+
const groupId = groupMatch?.id;
|
|
592
|
+
const resolvedInset = groupMatch?.inset ?? embedButtonVisibilityConfig?.defaultInset ?? DEFAULT_EMBED_BUTTON_INSET;
|
|
593
|
+
setEmbedButtonInset(resolvedInset);
|
|
594
|
+
const isSameGroup = groupId !== undefined && groupId === currentGroupIdRef.current;
|
|
595
|
+
if (groupId !== currentGroupIdRef.current) {
|
|
596
|
+
currentGroupIdRef.current = groupId;
|
|
597
|
+
}
|
|
598
|
+
if (continuity === 'continuous' && isSameGroup) {
|
|
599
|
+
const isWaitingForDelay = embedButtonTimerRef.current && embedButtonDelayContextRef.current?.groupId === groupId;
|
|
600
|
+
if (!isWaitingForDelay && !showEmbedButtonRef.current) {
|
|
601
|
+
setShowEmbedButton(true);
|
|
602
|
+
}
|
|
603
|
+
} else {
|
|
604
|
+
const shouldDelay = delayMs > 0 && (delayPolicy === 'perScreen' || delayPolicy === 'oncePerGroupEntry' && !isSameGroup || delayPolicy === 'oncePerAppSession' && (!groupId || !sessionShownGroupsRef.current.has(groupId)));
|
|
605
|
+
if (shouldDelay) {
|
|
606
|
+
clearEmbedButtonTimer();
|
|
607
|
+
setShowEmbedButton(false);
|
|
608
|
+
embedButtonDelayContextRef.current = {
|
|
609
|
+
groupId
|
|
610
|
+
};
|
|
611
|
+
embedButtonTimerRef.current = setTimeout(() => {
|
|
612
|
+
if (isMountedRef.current) {
|
|
613
|
+
setShowEmbedButton(true);
|
|
614
|
+
if (groupId && delayPolicy === 'oncePerAppSession') {
|
|
615
|
+
sessionShownGroupsRef.current.add(groupId);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
}, delayMs);
|
|
619
|
+
} else {
|
|
620
|
+
clearEmbedButtonTimer();
|
|
621
|
+
setShowEmbedButton(true);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}
|
|
530
625
|
}
|
|
531
626
|
|
|
532
627
|
// Persist screen context locally for later event enrichment
|
|
@@ -548,7 +643,7 @@ export const EmbedProvider = ({
|
|
|
548
643
|
} catch (error) {
|
|
549
644
|
// Catch-all error handler to prevent any tracking errors from breaking the app
|
|
550
645
|
}
|
|
551
|
-
}, [navRef, allIncludedScreens, _appVersion]);
|
|
646
|
+
}, [navRef, allIncludedScreens, _appVersion, embedButtonDelayMs, embedButtonVisibilityConfig]);
|
|
552
647
|
|
|
553
648
|
/**
|
|
554
649
|
* Effect: Navigation State Tracking
|
|
@@ -599,9 +694,48 @@ export const EmbedProvider = ({
|
|
|
599
694
|
unsubscribe();
|
|
600
695
|
isListenerActive = false;
|
|
601
696
|
}
|
|
697
|
+
if (embedButtonTimerRef.current) {
|
|
698
|
+
clearTimeout(embedButtonTimerRef.current);
|
|
699
|
+
embedButtonTimerRef.current = null;
|
|
700
|
+
}
|
|
701
|
+
embedButtonDelayContextRef.current = null;
|
|
602
702
|
};
|
|
603
703
|
}, [navRef, trackScreen]);
|
|
604
704
|
|
|
705
|
+
/**
|
|
706
|
+
* Effect: EmbedButton appearance animation
|
|
707
|
+
*/
|
|
708
|
+
useEffect(() => {
|
|
709
|
+
if (embedButtonAnimationRef.current) {
|
|
710
|
+
embedButtonAnimationRef.current.stop();
|
|
711
|
+
embedButtonAnimationRef.current = null;
|
|
712
|
+
}
|
|
713
|
+
if (showEmbedButton) {
|
|
714
|
+
setIsEmbedButtonMounted(true);
|
|
715
|
+
embedButtonAnimationRef.current = Animated.timing(embedButtonAnim, {
|
|
716
|
+
toValue: 1,
|
|
717
|
+
duration: EMBED_BUTTON_ANIMATION_DURATION,
|
|
718
|
+
easing: Easing.out(Easing.ease),
|
|
719
|
+
useNativeDriver: true
|
|
720
|
+
});
|
|
721
|
+
embedButtonAnimationRef.current.start();
|
|
722
|
+
} else {
|
|
723
|
+
embedButtonAnimationRef.current = Animated.timing(embedButtonAnim, {
|
|
724
|
+
toValue: 0,
|
|
725
|
+
duration: EMBED_BUTTON_ANIMATION_DURATION,
|
|
726
|
+
easing: Easing.in(Easing.ease),
|
|
727
|
+
useNativeDriver: true
|
|
728
|
+
});
|
|
729
|
+
embedButtonAnimationRef.current.start(({
|
|
730
|
+
finished
|
|
731
|
+
}) => {
|
|
732
|
+
if (finished) {
|
|
733
|
+
setIsEmbedButtonMounted(false);
|
|
734
|
+
}
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
}, [showEmbedButton, embedButtonAnim]);
|
|
738
|
+
|
|
605
739
|
/**
|
|
606
740
|
* Effect: Component Lifecycle Management
|
|
607
741
|
*
|
|
@@ -611,13 +745,52 @@ export const EmbedProvider = ({
|
|
|
611
745
|
isMountedRef.current = true;
|
|
612
746
|
return () => {
|
|
613
747
|
isMountedRef.current = false;
|
|
748
|
+
if (embedButtonTimerRef.current) {
|
|
749
|
+
clearTimeout(embedButtonTimerRef.current);
|
|
750
|
+
embedButtonTimerRef.current = null;
|
|
751
|
+
}
|
|
752
|
+
embedButtonDelayContextRef.current = null;
|
|
753
|
+
if (embedButtonAnimationRef.current) {
|
|
754
|
+
embedButtonAnimationRef.current.stop();
|
|
755
|
+
embedButtonAnimationRef.current = null;
|
|
756
|
+
}
|
|
614
757
|
};
|
|
615
758
|
}, []);
|
|
616
759
|
|
|
760
|
+
/**
|
|
761
|
+
* Effect: Click event tracker on widget-visible screens only
|
|
762
|
+
*
|
|
763
|
+
* When user lands on a screen where the widget is visible, install the touchable
|
|
764
|
+
* patch (if not already) and enable handling. When they leave, disable handling
|
|
765
|
+
* so only clicks on widget-visible screens are tracked.
|
|
766
|
+
*/
|
|
767
|
+
useEffect(() => {
|
|
768
|
+
if (showEmbedButton) {
|
|
769
|
+
installClickEventTracker();
|
|
770
|
+
setClickTrackerWidgetVisible(true);
|
|
771
|
+
} else {
|
|
772
|
+
setClickTrackerWidgetVisible(false);
|
|
773
|
+
}
|
|
774
|
+
}, [showEmbedButton]);
|
|
775
|
+
|
|
617
776
|
// ========== Render ==========
|
|
618
777
|
|
|
619
778
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
620
|
-
children: [children,
|
|
779
|
+
children: [children, isEmbedButtonMounted && /*#__PURE__*/_jsx(Animated.View, {
|
|
780
|
+
pointerEvents: showEmbedButton ? 'box-none' : 'none',
|
|
781
|
+
style: [styles.embedButtonWrapper, {
|
|
782
|
+
opacity: embedButtonAnim,
|
|
783
|
+
transform: [{
|
|
784
|
+
scale: embedButtonAnim.interpolate({
|
|
785
|
+
inputRange: [0, 1],
|
|
786
|
+
outputRange: [0.96, 1]
|
|
787
|
+
})
|
|
788
|
+
}]
|
|
789
|
+
}],
|
|
790
|
+
children: /*#__PURE__*/_jsx(EmbedButton, {
|
|
791
|
+
containerInset: embedButtonInset
|
|
792
|
+
})
|
|
793
|
+
})]
|
|
621
794
|
});
|
|
622
795
|
};
|
|
623
796
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","EmbedButton","Embed","EventKeys","setAgentData","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_INCLUDED_SCREENS","NAVIGATION_LISTENER_DELAY","getRouteHierarchy","state","allRoutes","routesByLevel","currentRouteParams","traverse","currentState","level","index","route","routes","name","routeName","push","params","length","currentScreen","parentRoute","undefined","depth","fullPath","join","routeParams","error","getAllRoutes","allRouteNamesSet","Set","collectRoutes","routeNames","Array","isArray","forEach","add","from","getNavigationTree","buildTree","filter","map","node","children","getAllDefinedRoutes","trackEmbedEvent","eventName","properties","Event","FORM_STATE","type","timestamp","Date","toISOString","trackRageClick","elementId","elementType","coordinates","clickCount","eventData","trackFormEvent","formId","eventType","formData","EmbedProvider","navigationRef","includeScreens","appVersion","_appVersion","defaultNavRef","navRef","isMountedRef","showEmbedButton","setShowEmbedButton","allIncludedScreens","Boolean","trackScreen","current","getRootState","routeInfo","screenName","getCurrentRoute","hasIncludeFilter","isIncluded","includes","shouldShowButton","screen","app_version","SCREEN_STATE","unsubscribe","delayTimer","isListenerActive","setupListener","addListener","setTimeout","clearTimeout"],"sourceRoot":"../../../src","sources":["context/EmbedProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","Animated","Easing","StyleSheet","EmbedButton","Embed","EventKeys","setAgentData","install","installClickEventTracker","setWidgetVisible","setClickTrackerWidgetVisible","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_INCLUDED_SCREENS","NAVIGATION_LISTENER_DELAY","EMBED_BUTTON_ANIMATION_DURATION","DEFAULT_EMBED_BUTTON_INSET","right","bottom","styles","create","embedButtonWrapper","position","top","left","getRouteHierarchy","state","allRoutes","routesByLevel","currentRouteParams","traverse","currentState","level","index","route","routes","name","routeName","push","params","length","currentScreen","parentRoute","undefined","depth","fullPath","join","routeParams","error","getAllRoutes","allRouteNamesSet","Set","collectRoutes","routeNames","Array","isArray","forEach","add","from","getNavigationTree","buildTree","filter","map","node","children","getAllDefinedRoutes","trackEmbedEvent","eventName","properties","Event","FORM_STATE","type","timestamp","Date","toISOString","trackRageClick","elementId","elementType","coordinates","clickCount","eventData","trackFormEvent","formId","eventType","formData","EmbedProvider","navigationRef","includeScreens","appVersion","_appVersion","embedButtonDelayMs","embedButtonVisibilityConfig","defaultNavRef","navRef","isMountedRef","embedButtonTimerRef","embedButtonDelayContextRef","currentGroupIdRef","sessionShownGroupsRef","showEmbedButtonRef","showEmbedButton","setShowEmbedButton","isEmbedButtonMounted","setIsEmbedButtonMounted","embedButtonInset","setEmbedButtonInset","embedButtonAnim","Value","current","embedButtonAnimationRef","allIncludedScreens","set","Boolean","groups","g","screens","s","trackScreen","getRootState","routeInfo","screenName","getCurrentRoute","clearEmbedButtonTimer","clearTimeout","hasIncludeFilter","isIncluded","includes","shouldIncludeButton","groupMatch","find","delayMs","defaultDelayMs","delayPolicy","continuity","groupId","id","resolvedInset","inset","defaultInset","isSameGroup","isWaitingForDelay","shouldDelay","has","setTimeout","screen","app_version","SCREEN_STATE","unsubscribe","delayTimer","isListenerActive","setupListener","addListener","stop","timing","toValue","duration","easing","out","ease","useNativeDriver","start","in","finished","View","pointerEvents","style","opacity","transform","scale","interpolate","inputRange","outputRange","containerInset"],"sourceRoot":"../../../src","sources":["context/EmbedProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Click Event Tracker
|
|
5
|
+
* Patches click/press events when the widget is visible. Only handles (logs/sends) events
|
|
6
|
+
* on screens where the Embed widget is visible. Triggered internally from EmbedProvider.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { Pressable, TouchableOpacity, TouchableHighlight, TouchableWithoutFeedback, TouchableNativeFeedback, Platform } from 'react-native';
|
|
11
|
+
import Embed from "./embed.event.js";
|
|
12
|
+
import { EventKeys } from "./embed.types.js";
|
|
13
|
+
/** Minimal in-memory registry for patched elements (mount/unmount). */
|
|
14
|
+
const ElementRegistry = {
|
|
15
|
+
_map: new Map(),
|
|
16
|
+
register(id, data) {
|
|
17
|
+
this._map.set(id, data);
|
|
18
|
+
},
|
|
19
|
+
unregister(id) {
|
|
20
|
+
this._map.delete(id);
|
|
21
|
+
},
|
|
22
|
+
update(id, updates) {
|
|
23
|
+
const entry = this._map.get(id);
|
|
24
|
+
if (entry) Object.assign(entry, updates);
|
|
25
|
+
},
|
|
26
|
+
get(id) {
|
|
27
|
+
return this._map.get(id);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
export let clickCounter = 0;
|
|
31
|
+
|
|
32
|
+
/** When false, handleTrackedClick no-ops. Set by EmbedProvider based on widget visibility. */
|
|
33
|
+
const widgetVisibleRef = {
|
|
34
|
+
current: false
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Called by EmbedProvider when the widget is shown or hidden on the current screen.
|
|
39
|
+
* Only click events on screens where the widget is visible are handled (logged/sent).
|
|
40
|
+
*/
|
|
41
|
+
export function setWidgetVisible(visible) {
|
|
42
|
+
widgetVisibleRef.current = visible;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Handles a tracked click: only when widget is visible; only when elementId is present.
|
|
47
|
+
* Sends the event to the main flow via ANALYTICS_DATA.
|
|
48
|
+
*/
|
|
49
|
+
function handleTrackedClick(data) {
|
|
50
|
+
if (!widgetVisibleRef.current) return;
|
|
51
|
+
const elementId = data?.elementId != null ? String(data.elementId).trim() : '';
|
|
52
|
+
if (!elementId) return;
|
|
53
|
+
Embed.Event(EventKeys.ANALYTICS_DATA, {
|
|
54
|
+
event_name: `${elementId}_pressed`,
|
|
55
|
+
timestamp: data.timestamp,
|
|
56
|
+
type: data.type,
|
|
57
|
+
component: data.component,
|
|
58
|
+
clickSequence: data.clickSequence
|
|
59
|
+
}).catch(error => {
|
|
60
|
+
console.warn('[ClickEventTracker] Failed to send click event:', error);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Test-only: invokes handleTrackedClick with given data. Used by tests to assert
|
|
66
|
+
* widget visibility and elementId gating without rendering touchables.
|
|
67
|
+
*/
|
|
68
|
+
export function __testHandleTrackedClick(data) {
|
|
69
|
+
handleTrackedClick(data);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Generic touchable component patcher. Wraps the original component with ref forwarding,
|
|
74
|
+
* element registration, and click tracking.
|
|
75
|
+
*/
|
|
76
|
+
const createTouchablePatcher = (componentName, OriginalComponent) => {
|
|
77
|
+
const Patched = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
78
|
+
const id = props.id || props.name || `${componentName.toLowerCase()}-${clickCounter++}`;
|
|
79
|
+
const originalOnPress = props.onPress;
|
|
80
|
+
const originalOnPressIn = props.onPressIn;
|
|
81
|
+
const internalRef = React.useRef(null);
|
|
82
|
+
React.useImperativeHandle(ref, () => internalRef.current);
|
|
83
|
+
|
|
84
|
+
// Register element on mount, unregister on unmount
|
|
85
|
+
React.useEffect(() => {
|
|
86
|
+
ElementRegistry.register(id, {
|
|
87
|
+
id,
|
|
88
|
+
ref: internalRef,
|
|
89
|
+
type: componentName,
|
|
90
|
+
props
|
|
91
|
+
});
|
|
92
|
+
return () => {
|
|
93
|
+
ElementRegistry.unregister(id);
|
|
94
|
+
};
|
|
95
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- only register/unregister on mount
|
|
96
|
+
}, [id]);
|
|
97
|
+
React.useEffect(() => {
|
|
98
|
+
ElementRegistry.update(id, {
|
|
99
|
+
props,
|
|
100
|
+
label: props.accessibilityLabel || props.label,
|
|
101
|
+
testID: props.testID,
|
|
102
|
+
name: props.name || props.id
|
|
103
|
+
});
|
|
104
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps -- update only when identity props change
|
|
105
|
+
}, [id, props.accessibilityLabel, props.label, props.testID, props.name, props.id]);
|
|
106
|
+
const enhancedProps = {
|
|
107
|
+
...props,
|
|
108
|
+
onPress: event => {
|
|
109
|
+
const clickSequence = clickCounter++;
|
|
110
|
+
const data = {
|
|
111
|
+
elementId: id,
|
|
112
|
+
timestamp: new Date().toISOString(),
|
|
113
|
+
type: 'press',
|
|
114
|
+
component: componentName,
|
|
115
|
+
clickSequence
|
|
116
|
+
};
|
|
117
|
+
handleTrackedClick(data);
|
|
118
|
+
if (originalOnPress) {
|
|
119
|
+
originalOnPress(event);
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
onPressIn: event => {
|
|
123
|
+
if (originalOnPressIn) {
|
|
124
|
+
originalOnPressIn(event);
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
ref: internalRef
|
|
128
|
+
};
|
|
129
|
+
return /*#__PURE__*/React.createElement(OriginalComponent, enhancedProps);
|
|
130
|
+
});
|
|
131
|
+
Patched.displayName = `Patched${componentName}`;
|
|
132
|
+
return Patched;
|
|
133
|
+
};
|
|
134
|
+
let isInstalled = false;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Installs the click event tracker by patching React Native touchable components.
|
|
138
|
+
* Call once early in the application (e.g. in your root component or index).
|
|
139
|
+
* Safe to call multiple times; skips components already patched.
|
|
140
|
+
*/
|
|
141
|
+
export function install() {
|
|
142
|
+
const reactNativeModule = require('react-native');
|
|
143
|
+
const touchableComponents = [{
|
|
144
|
+
name: 'TouchableOpacity',
|
|
145
|
+
component: TouchableOpacity
|
|
146
|
+
}, {
|
|
147
|
+
name: 'TouchableHighlight',
|
|
148
|
+
component: TouchableHighlight
|
|
149
|
+
}, {
|
|
150
|
+
name: 'TouchableWithoutFeedback',
|
|
151
|
+
component: TouchableWithoutFeedback
|
|
152
|
+
}, {
|
|
153
|
+
name: 'Pressable',
|
|
154
|
+
component: Pressable
|
|
155
|
+
}];
|
|
156
|
+
if (Platform.OS === 'android') {
|
|
157
|
+
touchableComponents.push({
|
|
158
|
+
name: 'TouchableNativeFeedback',
|
|
159
|
+
component: TouchableNativeFeedback
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
touchableComponents.forEach(({
|
|
163
|
+
name,
|
|
164
|
+
component
|
|
165
|
+
}) => {
|
|
166
|
+
if (component.__CLICK_TRACKING_PATCHED__) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const EnhancedComponent = createTouchablePatcher(name, component);
|
|
170
|
+
EnhancedComponent.__CLICK_TRACKING_PATCHED__ = true;
|
|
171
|
+
try {
|
|
172
|
+
Object.defineProperty(reactNativeModule, name, {
|
|
173
|
+
value: EnhancedComponent,
|
|
174
|
+
writable: true,
|
|
175
|
+
enumerable: true,
|
|
176
|
+
configurable: true
|
|
177
|
+
});
|
|
178
|
+
} catch (error) {
|
|
179
|
+
console.warn(`[ClickEventTracker] Failed to patch ${name}:`, error);
|
|
180
|
+
}
|
|
181
|
+
component.__CLICK_TRACKING_PATCHED__ = true;
|
|
182
|
+
});
|
|
183
|
+
isInstalled = true;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Returns whether the click event tracker is currently installed.
|
|
188
|
+
*/
|
|
189
|
+
export function isClickTrackerInstalled() {
|
|
190
|
+
return isInstalled;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Returns the element registry (for tests or downstream use).
|
|
195
|
+
*/
|
|
196
|
+
export function getElementRegistry() {
|
|
197
|
+
return ElementRegistry;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=clickEventTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Pressable","TouchableOpacity","TouchableHighlight","TouchableWithoutFeedback","TouchableNativeFeedback","Platform","Embed","EventKeys","ElementRegistry","_map","Map","register","id","data","set","unregister","delete","update","updates","entry","get","Object","assign","clickCounter","widgetVisibleRef","current","setWidgetVisible","visible","handleTrackedClick","elementId","String","trim","Event","ANALYTICS_DATA","event_name","timestamp","type","component","clickSequence","catch","error","console","warn","__testHandleTrackedClick","createTouchablePatcher","componentName","OriginalComponent","Patched","forwardRef","props","ref","name","toLowerCase","originalOnPress","onPress","originalOnPressIn","onPressIn","internalRef","useRef","useImperativeHandle","useEffect","label","accessibilityLabel","testID","enhancedProps","event","Date","toISOString","createElement","displayName","isInstalled","install","reactNativeModule","require","touchableComponents","OS","push","forEach","__CLICK_TRACKING_PATCHED__","EnhancedComponent","defineProperty","value","writable","enumerable","configurable","isClickTrackerInstalled","getElementRegistry"],"sourceRoot":"../../../src","sources":["events/clickEventTracker.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -105,9 +105,17 @@ class Embed {
|
|
|
105
105
|
|
|
106
106
|
// Ensure a default listener is registered
|
|
107
107
|
this.ensureDefaultListener(key);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
try {
|
|
109
|
+
// Send event to backend API
|
|
110
|
+
await this.sendEventToAPI(eventKey, data, key);
|
|
111
|
+
} catch (apiError) {
|
|
112
|
+
// Analytics events (e.g. click, popup_visible) fail silently when server is down (502, etc.)
|
|
113
|
+
// so the app keeps working; critical flows (e.g. init) still throw.
|
|
114
|
+
if (key === EventKeys.ANALYTICS_DATA) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
throw apiError;
|
|
118
|
+
}
|
|
111
119
|
|
|
112
120
|
// Trigger local event listeners
|
|
113
121
|
this.triggerEventListeners(key, data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APIService","getAgentData","setAgentData","buildEventPayload","AgentEventEmitter","EventKeys","validateAnalyticsEvent","validateEventKey","Embed","events","constructor","event","ensureDefaultListener","eventKey","_data","enrichEventData","data","userIdentity","app_user_id","Error","sendEventToAPI","key","apiService","getInstance","screenData","SCREEN_STATE","userData","USER_DATA","currentScreen","screen","appVersion","app_version","paramsData","response","updateUserData","success","error","triggerEventListeners","forEach","callback","Event","on","push","embed","AgentEvent"],"sourceRoot":"../../../src","sources":["events/embed.event.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["APIService","getAgentData","setAgentData","buildEventPayload","AgentEventEmitter","EventKeys","validateAnalyticsEvent","validateEventKey","Embed","events","constructor","event","ensureDefaultListener","eventKey","_data","enrichEventData","data","userIdentity","app_user_id","Error","sendEventToAPI","key","apiService","getInstance","screenData","SCREEN_STATE","userData","USER_DATA","currentScreen","screen","appVersion","app_version","paramsData","response","updateUserData","success","error","triggerEventListeners","forEach","callback","Event","apiError","ANALYTICS_DATA","on","push","embed","AgentEvent"],"sourceRoot":"../../../src","sources":["events/embed.event.ts"],"mappings":"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","ignoreList":[]}
|