react-native-acoustic-connect-beta 18.0.13 → 18.0.14

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.
@@ -252,6 +252,7 @@ export default function PaperExample() {
252
252
  onStateChange={(state) =>
253
253
  AsyncStorage.setItem(PERSISTENCE_KEY, JSON.stringify(state))
254
254
  }
255
+ onReady={() => console.log('NavigationContainer is ready!')}
255
256
  >
256
257
  <SafeAreaInsetsContext.Consumer>
257
258
  {(insets) => {
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "10.4.45",
27
+ "LibraryVersion": "10.4.59",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",
@@ -24,7 +24,7 @@
24
24
  "IpPlaceholder": "N/A",
25
25
  "KillSwitchAsync": true,
26
26
  "KillSwitchDelay": 300,
27
- "LibraryVersion": "10.4.14",
27
+ "LibraryVersion": "10.4.16",
28
28
  "LogFullRequestResponsePayloads": true,
29
29
  "MessageTypeHeader": "WorklightHit",
30
30
  "MessageTypes": "4,5",
@@ -37,10 +37,10 @@ class HybridAcousticConnectRN: HybridAcousticConnectRNSpec {
37
37
  func load() {
38
38
  DispatchQueue.main.async {
39
39
  self.loadConnectConfig()
40
- EOApplicationHelper().setConfigItem(kConfigurableItemSetGestureDetector, value: "false", forModuleName: kTLFCoreModule)
41
- EOApplicationHelper().setConfigItem(kConfigurableItemLogViewLayoutOnScreenTransition, value: "false", forModuleName: kTLFCoreModule)
40
+ // EOApplicationHelper().setConfigItem(kConfigurableItemSetGestureDetector, value: "false", forModuleName: kTLFCoreModule)
41
+ // EOApplicationHelper().setConfigItem(kConfigurableItemLogViewLayoutOnScreenTransition, value: "false", forModuleName: kTLFCoreModule)
42
+ ConnectApplicationHelper().isReactNative(true, wrapNavigationContainer: true)
42
43
  ConnectApplicationHelper().enableFramework()
43
- ConnectApplicationHelper().isReactNative(true)
44
44
  }
45
45
  }
46
46
 
@@ -280,7 +280,7 @@ class HybridAcousticConnectRN: HybridAcousticConnectRNSpec {
280
280
  /// - Parameter logicalPageName: Page name or title e.g. "Login View Controller"; Must not be empty.
281
281
  /// - Returns: Boolean value will return whether it was able to log the screenview event.
282
282
  func setCurrentScreenName(logicalPageName: String) throws -> Bool {
283
- let result = ConnectApplicationHelper().resume(logicalPageName)
283
+ let result = ConnectApplicationHelper().setCurrentScreenName(logicalPageName)
284
284
  return result
285
285
  }
286
286
 
@@ -20,59 +20,57 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
20
20
  * prohibited.
21
21
  ********************************************************************************************/
22
22
 
23
- const Connect = /*#__PURE__*/(0, _react.forwardRef)(({
24
- children,
25
- captureKeyboardEvents,
26
- navigationRef
27
- }, ref) => {
28
- const navigation = navigationRef || (0, _react.useRef)(null);
23
+ // Use type-only import for LayoutChangeEvent
29
24
 
30
- // Handle forwarded ref
31
- (0, _react.useEffect)(() => {
32
- if (ref && typeof ref === "object" && ref !== null) {
33
- navigation.current = ref.current;
34
- } else if (typeof ref === "function") {
35
- ref(navigation.current);
36
- }
37
- }, [ref]);
25
+ const Connect = ({
26
+ children,
27
+ captureKeyboardEvents
28
+ }) => {
29
+ const navigation = children.ref; // Type assertion for children with ref
38
30
  const currentRoute = (0, _react.useRef)(undefined);
39
31
  const initial = (0, _react.useRef)(false);
40
32
  (0, _react.useEffect)(() => {
41
33
  _TLTRN.default.interceptKeyboardEvents(captureKeyboardEvents);
42
34
  }, [captureKeyboardEvents]);
43
35
  (0, _react.useEffect)(() => {
44
- if (!navigation.current || typeof navigation.current.addListener !== "function" || typeof navigation.current.getCurrentRoute !== "function") {
45
- console.warn("Connect: The Connect component's ref must be a NavigationContainer with a ref.");
36
+ if (!navigation || typeof navigation.current.addListener !== "function" || typeof navigation.current.getCurrentRoute !== "function") {
37
+ console.warn("Connect: The Connect component's first child must be a NavigationContainer with a ref.");
46
38
  return;
47
39
  }
48
- const unsubscribe = navigation.current.addListener("state", () => {
49
- currentRoute.current = extractName(navigation);
40
+
41
+ // Listen for the 'state' event to track navigation state changes
42
+ const unsubscribeState = navigation.current.addListener("state", () => {
43
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
50
44
  console.log("State change - ", currentRoute.current);
51
- if (_reactNative.Platform.OS === "ios" && currentRoute.current) {
45
+ if (_reactNative.Platform.OS === "ios" && currentRoute && currentRoute.current) {
52
46
  _TLTRN.default.logScreenViewPageName(currentRoute.current);
53
47
  } else if (_reactNative.Platform.OS === "android") {
54
48
  _TLTRN.default.logScreenViewPageName(currentRoute.current);
55
49
  _TLTRN.default.logScreenLayout(currentRoute.current);
56
50
  }
57
51
  });
58
- return unsubscribe;
52
+
53
+ // Cleanup listeners when the component unmounts or dependencies change
54
+ return () => {
55
+ unsubscribeState();
56
+ };
59
57
  }, [navigation]);
60
58
  const onStartShouldSetResponderCapture = (0, _react.useCallback)(event => {
61
- currentRoute.current = extractName(navigation);
62
- if (currentRoute.current) {
59
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
60
+ if (currentRoute && currentRoute.current) {
63
61
  _TLTRN.default.logScreenViewPageName(currentRoute.current);
64
62
  }
65
63
  _TLTRN.default.logClickEvent(event);
66
- return false;
67
- }, [navigation]);
64
+ return false; // Must be false; true means this component becomes the touch responder and events don't bubble
65
+ }, []);
68
66
  const onLayout = (0, _react.useCallback)(event => {
69
67
  if (initial.current) {
70
68
  return false;
71
69
  }
72
70
  initial.current = true;
73
71
  console.log("event - ", event.nativeEvent);
74
- currentRoute.current = navigation.current?.getCurrentRoute()?.name;
75
- if (_reactNative.Platform.OS === "ios" && currentRoute.current) {
72
+ currentRoute.current = navigation.current.getCurrentRoute()?.name;
73
+ if (_reactNative.Platform.OS === "ios" && currentRoute && currentRoute.current) {
76
74
  _TLTRN.default.logScreenViewPageName(currentRoute.current);
77
75
  } else if (_reactNative.Platform.OS === "android") {
78
76
  _TLTRN.default.logScreenLayout(currentRoute.current);
@@ -85,16 +83,16 @@ const Connect = /*#__PURE__*/(0, _react.forwardRef)(({
85
83
  onStartShouldSetResponderCapture: onStartShouldSetResponderCapture,
86
84
  children: children
87
85
  });
88
- });
86
+ };
89
87
  function extractName(navigation) {
90
- const routeParams = navigation.current?.getCurrentRoute()?.params;
88
+ const routeParams = navigation.current.getCurrentRoute()?.params;
91
89
  if (routeParams) {
92
90
  const {
93
91
  name
94
92
  } = routeParams;
95
- return name || "";
93
+ return name ? name : navigation.current?.getCurrentRoute()?.name || "";
96
94
  }
97
- return navigation.current?.getCurrentRoute()?.name || "";
95
+ return "";
98
96
  }
99
97
  var _default = exports.default = Connect;
100
98
  const styles = _reactNative.StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TLTRN","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Connect","forwardRef","children","captureKeyboardEvents","navigationRef","ref","navigation","useRef","useEffect","current","currentRoute","undefined","initial","TLTRN","interceptKeyboardEvents","addListener","getCurrentRoute","console","warn","unsubscribe","extractName","log","Platform","OS","logScreenViewPageName","logScreenLayout","onStartShouldSetResponderCapture","useCallback","event","logClickEvent","onLayout","nativeEvent","name","jsx","View","style","styles","connect_main","routeParams","params","_default","exports","StyleSheet","create","flex"],"sourceRoot":"../../../src","sources":["components/Connect.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TLTRN","_interopRequireDefault","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Connect","children","captureKeyboardEvents","navigation","ref","currentRoute","useRef","undefined","initial","useEffect","TLTRN","interceptKeyboardEvents","current","addListener","getCurrentRoute","console","warn","unsubscribeState","extractName","name","log","Platform","OS","logScreenViewPageName","logScreenLayout","onStartShouldSetResponderCapture","useCallback","event","logClickEvent","onLayout","nativeEvent","jsx","View","style","styles","connect_main","routeParams","params","_default","exports","StyleSheet","create","flex"],"sourceRoot":"../../../src","sources":["components/Connect.tsx"],"mappings":"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","ignoreList":[]}
@@ -9,63 +9,60 @@
9
9
  * Acoustic, L.P. Any unauthorized copying or distribution of content from this file is
10
10
  * prohibited.
11
11
  ********************************************************************************************/
12
- import React, { useCallback, useEffect, useRef, forwardRef } from "react";
12
+ import React, { useCallback, useEffect, useRef } from "react";
13
13
  import { View, StyleSheet, Platform } from "react-native";
14
- import TLTRN from "../TLTRN";
14
+ // Use type-only import for LayoutChangeEvent
15
+ import TLTRN from '../TLTRN';
15
16
  import { jsx as _jsx } from "react/jsx-runtime";
16
- const Connect = /*#__PURE__*/forwardRef(({
17
+ const Connect = ({
17
18
  children,
18
- captureKeyboardEvents,
19
- navigationRef
20
- }, ref) => {
21
- const navigation = navigationRef || useRef(null);
22
-
23
- // Handle forwarded ref
24
- useEffect(() => {
25
- if (ref && typeof ref === "object" && ref !== null) {
26
- navigation.current = ref.current;
27
- } else if (typeof ref === "function") {
28
- ref(navigation.current);
29
- }
30
- }, [ref]);
19
+ captureKeyboardEvents
20
+ }) => {
21
+ const navigation = children.ref; // Type assertion for children with ref
31
22
  const currentRoute = useRef(undefined);
32
23
  const initial = useRef(false);
33
24
  useEffect(() => {
34
25
  TLTRN.interceptKeyboardEvents(captureKeyboardEvents);
35
26
  }, [captureKeyboardEvents]);
36
27
  useEffect(() => {
37
- if (!navigation.current || typeof navigation.current.addListener !== "function" || typeof navigation.current.getCurrentRoute !== "function") {
38
- console.warn("Connect: The Connect component's ref must be a NavigationContainer with a ref.");
28
+ if (!navigation || typeof navigation.current.addListener !== "function" || typeof navigation.current.getCurrentRoute !== "function") {
29
+ console.warn("Connect: The Connect component's first child must be a NavigationContainer with a ref.");
39
30
  return;
40
31
  }
41
- const unsubscribe = navigation.current.addListener("state", () => {
42
- currentRoute.current = extractName(navigation);
32
+
33
+ // Listen for the 'state' event to track navigation state changes
34
+ const unsubscribeState = navigation.current.addListener("state", () => {
35
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
43
36
  console.log("State change - ", currentRoute.current);
44
- if (Platform.OS === "ios" && currentRoute.current) {
37
+ if (Platform.OS === "ios" && currentRoute && currentRoute.current) {
45
38
  TLTRN.logScreenViewPageName(currentRoute.current);
46
39
  } else if (Platform.OS === "android") {
47
40
  TLTRN.logScreenViewPageName(currentRoute.current);
48
41
  TLTRN.logScreenLayout(currentRoute.current);
49
42
  }
50
43
  });
51
- return unsubscribe;
44
+
45
+ // Cleanup listeners when the component unmounts or dependencies change
46
+ return () => {
47
+ unsubscribeState();
48
+ };
52
49
  }, [navigation]);
53
50
  const onStartShouldSetResponderCapture = useCallback(event => {
54
- currentRoute.current = extractName(navigation);
55
- if (currentRoute.current) {
51
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
52
+ if (currentRoute && currentRoute.current) {
56
53
  TLTRN.logScreenViewPageName(currentRoute.current);
57
54
  }
58
55
  TLTRN.logClickEvent(event);
59
- return false;
60
- }, [navigation]);
56
+ return false; // Must be false; true means this component becomes the touch responder and events don't bubble
57
+ }, []);
61
58
  const onLayout = useCallback(event => {
62
59
  if (initial.current) {
63
60
  return false;
64
61
  }
65
62
  initial.current = true;
66
63
  console.log("event - ", event.nativeEvent);
67
- currentRoute.current = navigation.current?.getCurrentRoute()?.name;
68
- if (Platform.OS === "ios" && currentRoute.current) {
64
+ currentRoute.current = navigation.current.getCurrentRoute()?.name;
65
+ if (Platform.OS === "ios" && currentRoute && currentRoute.current) {
69
66
  TLTRN.logScreenViewPageName(currentRoute.current);
70
67
  } else if (Platform.OS === "android") {
71
68
  TLTRN.logScreenLayout(currentRoute.current);
@@ -78,16 +75,16 @@ const Connect = /*#__PURE__*/forwardRef(({
78
75
  onStartShouldSetResponderCapture: onStartShouldSetResponderCapture,
79
76
  children: children
80
77
  });
81
- });
78
+ };
82
79
  function extractName(navigation) {
83
- const routeParams = navigation.current?.getCurrentRoute()?.params;
80
+ const routeParams = navigation.current.getCurrentRoute()?.params;
84
81
  if (routeParams) {
85
82
  const {
86
83
  name
87
84
  } = routeParams;
88
- return name || "";
85
+ return name ? name : navigation.current?.getCurrentRoute()?.name || "";
89
86
  }
90
- return navigation.current?.getCurrentRoute()?.name || "";
87
+ return "";
91
88
  }
92
89
  export default Connect;
93
90
  const styles = StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useRef","forwardRef","View","StyleSheet","Platform","TLTRN","jsx","_jsx","Connect","children","captureKeyboardEvents","navigationRef","ref","navigation","current","currentRoute","undefined","initial","interceptKeyboardEvents","addListener","getCurrentRoute","console","warn","unsubscribe","extractName","log","OS","logScreenViewPageName","logScreenLayout","onStartShouldSetResponderCapture","event","logClickEvent","onLayout","nativeEvent","name","style","styles","connect_main","routeParams","params","create","flex"],"sourceRoot":"../../../src","sources":["components/Connect.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useRef","View","StyleSheet","Platform","TLTRN","jsx","_jsx","Connect","children","captureKeyboardEvents","navigation","ref","currentRoute","undefined","initial","interceptKeyboardEvents","current","addListener","getCurrentRoute","console","warn","unsubscribeState","extractName","name","log","OS","logScreenViewPageName","logScreenLayout","onStartShouldSetResponderCapture","event","logClickEvent","onLayout","nativeEvent","style","styles","connect_main","routeParams","params","create","flex"],"sourceRoot":"../../../src","sources":["components/Connect.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,8 +11,7 @@ import React from "react";
11
11
  interface ConnectProps {
12
12
  children: React.ReactNode;
13
13
  captureKeyboardEvents: boolean;
14
- navigationRef?: React.RefObject<any>;
15
14
  }
16
- declare const Connect: React.ForwardRefExoticComponent<ConnectProps & React.RefAttributes<any>>;
15
+ declare const Connect: React.FC<ConnectProps>;
17
16
  export default Connect;
18
17
  //# sourceMappingURL=Connect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Connect.d.ts","sourceRoot":"","sources":["../../../../src/components/Connect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;6FAQ6F;AAC7F,OAAO,KAAqD,MAAM,OAAO,CAAC;AAK1E,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACxC;AAED,QAAA,MAAM,OAAO,0EAwFX,CAAC;AAWH,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Connect.d.ts","sourceRoot":"","sources":["../../../../src/components/Connect.tsx"],"names":[],"mappings":"AAAA;;;;;;;;6FAQ6F;AAC7F,OAAO,KAAqD,MAAM,OAAO,CAAC;AAK1E,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;CAClC;AAED,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA2EnC,CAAC;AAWF,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -192,7 +192,7 @@
192
192
  "source": "src/index",
193
193
  "summary": "react-native ios android tealeaf connect cxa wxca er enhanced-replay",
194
194
  "types": "./lib/typescript/src/index.d.ts",
195
- "version": "18.0.13",
195
+ "version": "18.0.14",
196
196
  "workspaces": [
197
197
  "example"
198
198
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "Connect": {
3
- "AndroidVersion": "10.4.45",
3
+ "AndroidVersion": "10.4.59",
4
4
  "AppKey": "b6c3709b7a4c479bb4b5a9fb8fec324c",
5
5
  "KillSwitchUrl": "https://lib-us-2.brilliantcollector.com/collector/switch/b6c3709b7a4c479bb4b5a9fb8fec324c",
6
6
  "PostMessageUrl": "https://lib-us-2.brilliantcollector.com/collector/collectorPost",
@@ -9,118 +9,104 @@
9
9
  ********************************************************************************************/
10
10
  import React, { useCallback, useEffect, useRef, forwardRef } from "react";
11
11
  import { View, StyleSheet, Platform, NativeModules, findNodeHandle } from "react-native";
12
- import type { LayoutChangeEvent } from "react-native";
13
- import TLTRN from "../TLTRN";
12
+ import type { LayoutChangeEvent } from "react-native"; // Use type-only import for LayoutChangeEvent
13
+ import TLTRN from '../TLTRN';
14
14
 
15
15
  interface ConnectProps {
16
16
  children: React.ReactNode;
17
17
  captureKeyboardEvents: boolean;
18
- navigationRef?: React.RefObject<any>;
19
18
  }
20
19
 
21
- const Connect = forwardRef<any, ConnectProps>(
22
- ({ children, captureKeyboardEvents, navigationRef }, ref) => {
23
- const navigation = navigationRef || useRef(null);
24
-
25
- // Handle forwarded ref
26
- useEffect(() => {
27
- if (ref && typeof ref === "object" && ref !== null) {
28
- navigation.current = ref.current;
29
- } else if (typeof ref === "function") {
30
- ref(navigation.current);
31
- }
32
- }, [ref]);
33
-
34
- const currentRoute = useRef<string | undefined>(undefined);
35
- const initial = useRef<boolean>(false);
36
-
37
- useEffect(() => {
38
- TLTRN.interceptKeyboardEvents(captureKeyboardEvents);
39
- }, [captureKeyboardEvents]);
40
-
41
- useEffect(() => {
42
- if (
43
- !navigation.current ||
44
- typeof navigation.current.addListener !== "function" ||
45
- typeof navigation.current.getCurrentRoute !== "function"
46
- ) {
47
- console.warn(
48
- "Connect: The Connect component's ref must be a NavigationContainer with a ref."
49
- );
50
- return;
51
- }
52
-
53
- const unsubscribe = navigation.current.addListener("state", () => {
54
- currentRoute.current = extractName(navigation);
55
- console.log("State change - ", currentRoute.current);
56
-
57
- if (Platform.OS === "ios" && currentRoute.current) {
58
- TLTRN.logScreenViewPageName(currentRoute.current);
59
- } else if (Platform.OS === "android") {
60
- TLTRN.logScreenViewPageName(currentRoute.current);
61
- TLTRN.logScreenLayout(currentRoute.current);
62
- }
63
- });
64
-
65
- return unsubscribe;
66
- }, [navigation]);
67
-
68
- const onStartShouldSetResponderCapture = useCallback(
69
- (event: any) => {
70
- currentRoute.current = extractName(navigation);
71
- if (currentRoute.current) {
72
- TLTRN.logScreenViewPageName(currentRoute.current);
73
- }
74
- TLTRN.logClickEvent(event);
75
- return false;
76
- },
77
- [navigation]
78
- );
79
-
80
- const onLayout = useCallback(
81
- (event: LayoutChangeEvent) => {
82
- if (initial.current) {
83
- return false;
84
- }
85
- initial.current = true;
86
-
87
- console.log("event - ", event.nativeEvent);
88
-
89
- currentRoute.current = navigation.current?.getCurrentRoute()?.name;
90
- if (Platform.OS === "ios" && currentRoute.current) {
91
- TLTRN.logScreenViewPageName(currentRoute.current);
92
- } else if (Platform.OS === "android") {
93
- TLTRN.logScreenLayout(currentRoute.current);
94
- }
95
- return true;
96
- },
97
- [navigation]
98
- );
99
-
100
- return (
101
- <View
102
- style={styles.connect_main}
103
- onLayout={onLayout}
104
- onStartShouldSetResponderCapture={onStartShouldSetResponderCapture}
105
- >
106
- {children}
107
- </View>
108
- );
109
- });
20
+ const Connect: React.FC<ConnectProps> = ({ children, captureKeyboardEvents }) => {
21
+ const navigation = (children as any).ref; // Type assertion for children with ref
22
+ const currentRoute = useRef<string | undefined>(undefined);
23
+ const initial = useRef<boolean>(false);
24
+
25
+ useEffect(() => {
26
+ TLTRN.interceptKeyboardEvents(captureKeyboardEvents);
27
+ }, [captureKeyboardEvents]);
28
+
29
+ useEffect(() => {
30
+ if (
31
+ !navigation ||
32
+ typeof navigation.current.addListener !== "function" ||
33
+ typeof navigation.current.getCurrentRoute !== "function"
34
+ ) {
35
+ console.warn(
36
+ "Connect: The Connect component's first child must be a NavigationContainer with a ref."
37
+ );
38
+ return;
39
+ }
40
+
41
+ // Listen for the 'state' event to track navigation state changes
42
+ const unsubscribeState = navigation.current.addListener("state", () => {
43
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
44
+ console.log("State change - ", currentRoute.current);
45
+
46
+ if (Platform.OS === "ios" && currentRoute && currentRoute.current) {
47
+ TLTRN.logScreenViewPageName(currentRoute.current);
48
+ } else if (Platform.OS === "android") {
49
+ TLTRN.logScreenViewPageName(currentRoute.current);
50
+ TLTRN.logScreenLayout(currentRoute.current);
51
+ }
52
+ });
53
+
54
+ // Cleanup listeners when the component unmounts or dependencies change
55
+ return () => {
56
+ unsubscribeState();
57
+ };
58
+ }, [navigation]);
59
+
60
+ const onStartShouldSetResponderCapture = useCallback((event: any) => {
61
+ currentRoute.current = extractName(navigation) || navigation.current.getCurrentRoute()?.name;
62
+ if (currentRoute && currentRoute.current) {
63
+ TLTRN.logScreenViewPageName(currentRoute.current);
64
+ }
65
+ TLTRN.logClickEvent(event);
66
+ return false; // Must be false; true means this component becomes the touch responder and events don't bubble
67
+ }, []);
68
+
69
+ const onLayout = useCallback((event: LayoutChangeEvent) => {
70
+ if (initial.current) {
71
+ return false;
72
+ }
73
+ initial.current = true;
74
+
75
+ console.log("event - ", event.nativeEvent);
76
+
77
+ currentRoute.current = navigation.current.getCurrentRoute()?.name;
78
+ if (Platform.OS === "ios" && currentRoute && currentRoute.current) {
79
+ TLTRN.logScreenViewPageName(currentRoute.current);
80
+ } else if (Platform.OS === "android") {
81
+ TLTRN.logScreenLayout(currentRoute.current);
82
+ }
83
+ return true
84
+ }, [navigation]);
85
+
86
+ return (
87
+ <View
88
+ style={styles.connect_main}
89
+ onLayout={onLayout}
90
+ onStartShouldSetResponderCapture={onStartShouldSetResponderCapture}
91
+ >
92
+ {children}
93
+ </View>
94
+ );
95
+ };
110
96
 
111
97
  function extractName(navigation: any): string {
112
- const routeParams = navigation.current?.getCurrentRoute()?.params;
113
- if (routeParams) {
114
- const { name } = routeParams;
115
- return name || "";
116
- }
117
- return navigation.current?.getCurrentRoute()?.name || "";
98
+ const routeParams = navigation.current.getCurrentRoute()?.params;
99
+ if (routeParams) {
100
+ const { name } = routeParams;
101
+ return name ? name : navigation.current?.getCurrentRoute()?.name || "";
102
+ }
103
+ return "";
118
104
  }
119
105
 
120
106
  export default Connect;
121
107
 
122
108
  const styles = StyleSheet.create({
123
- connect_main: {
124
- flex: 1,
125
- },
109
+ connect_main: {
110
+ flex: 1,
111
+ },
126
112
  });