@applicaster/zapp-react-native-app 14.0.0-rc.9 → 15.0.0-alpha.1089439460

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.
@@ -10,9 +10,46 @@ import { useNavigation } from "@applicaster/zapp-react-native-utils/reactHooks/n
10
10
  import { useAnalytics } from "@applicaster/zapp-react-native-utils/analyticsUtils";
11
11
  import { useRivers } from "@applicaster/zapp-react-native-utils/reactHooks/state";
12
12
  import { useErrorStore } from "@applicaster/quick-brick-core/App/ErrorBoundary/store";
13
+ import { isApplePlatform } from "@applicaster/zapp-react-native-utils/reactUtils";
13
14
 
14
15
  const getHome = R.compose(R.find(R.propEq("home", true)), R.values);
15
16
 
17
+ const isIOS = isApplePlatform();
18
+ /* Set to `false` in production, do not commit this change */
19
+ const IS_DEBUGGER_ENABLED = false;
20
+
21
+ /**
22
+ * This is a workaround to fix an error on start when debugger is connected.
23
+ * Update function body for this function `callNativeSyncHook`
24
+ * node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:167
25
+
26
+ this.processCallbacks(moduleID, methodID, params, onFail, onSucc);
27
+ if(global.nativeCallSyncHook) {
28
+ return global.nativeCallSyncHook(moduleID, methodID, params);
29
+ }
30
+ */
31
+
32
+ // Assign this to a dev-only button or useEffect call
33
+ const connectToRemoteDebugger = () => {
34
+ if (__DEV__ && isIOS) {
35
+ try {
36
+ const { DevSettings, NativeModules } = require("react-native");
37
+
38
+ // eslint-disable-next-line no-console
39
+ console.warn(`Debugger connected: ${IS_DEBUGGER_ENABLED}`);
40
+
41
+ if (DevSettings?.setIsDebuggingRemotely) {
42
+ DevSettings.setIsDebuggingRemotely(IS_DEBUGGER_ENABLED);
43
+ }
44
+
45
+ NativeModules?.DevSettings?.setIsDebuggingRemotely?.(IS_DEBUGGER_ENABLED);
46
+ } catch (error) {
47
+ // eslint-disable-next-line no-console
48
+ console.error(`connectToRemoteDebugger message: ${error.message}`);
49
+ }
50
+ }
51
+ };
52
+
16
53
  const InteractionManagerComponent = () => {
17
54
  const { sendHardwareBackButtonClickEvent } = useAnalytics();
18
55
  const rivers = useRivers();
@@ -66,10 +103,17 @@ const InteractionManagerComponent = () => {
66
103
  }, [navigator.currentRoute]);
67
104
 
68
105
  React.useEffect(() => {
69
- BackHandler.addEventListener("hardwareBackPress", onHardwareBackPress);
106
+ connectToRemoteDebugger();
107
+ }, []);
108
+
109
+ React.useEffect(() => {
110
+ const unsubscribe = BackHandler.addEventListener(
111
+ "hardwareBackPress",
112
+ onHardwareBackPress
113
+ );
70
114
 
71
115
  return () => {
72
- BackHandler.removeEventListener("hardwareBackPress", onHardwareBackPress);
116
+ unsubscribe.remove();
73
117
  };
74
118
  }, [onHardwareBackPress]);
75
119
 
@@ -138,6 +138,9 @@ jest.mock(
138
138
  );
139
139
 
140
140
  jest.mock("@applicaster/zapp-react-native-utils/navigationUtils", () => ({
141
+ ...(jest.requireActual(
142
+ "@applicaster/zapp-react-native-utils/navigationUtils"
143
+ ) as jest.Mock<any>),
141
144
  getNavigationProps: () => ({}),
142
145
  resolveNavigationPlugin: () => ({
143
146
  identifier: "quick-brick-bottom-tabs",
@@ -3,10 +3,7 @@ import * as R from "ramda";
3
3
 
4
4
  import { View, StyleSheet } from "react-native";
5
5
 
6
- import {
7
- getNavigationProps,
8
- resolveNavigationPlugin,
9
- } from "@applicaster/zapp-react-native-utils/navigationUtils";
6
+ import { getNavigationProps } from "@applicaster/zapp-react-native-utils/navigationUtils";
10
7
  import {
11
8
  useDimensions,
12
9
  useGetBottomTabBarHeight,
@@ -30,7 +27,6 @@ import {
30
27
  import { VideoModal } from "@applicaster/zapp-react-native-ui-components/Components/VideoModal";
31
28
  import { withDimensionsProvider } from "@applicaster/zapp-react-native-utils/dimensionsProvider";
32
29
  import { withModalAnimationProvider } from "@applicaster/zapp-react-native-ui-components/Components/VideoModal/ModalAnimation";
33
- import { useModalAnimationContext } from "@applicaster/zapp-react-native-ui-components/Components/VideoModal/ModalAnimation/useModalAnimationContext";
34
30
 
35
31
  import { ZappHooksModal } from "@applicaster/zapp-react-dom-ui-components/Components/ZappHooksModal";
36
32
  import { useListenEventBusEvent } from "@applicaster/zapp-react-native-utils/reactHooks/useListenEventBusEvent";
@@ -71,12 +67,6 @@ const LayoutWithMenu = () => {
71
67
 
72
68
  const { activeRiver, videoModalState, isVideoModalDocked } = navigator;
73
69
 
74
- const plugin = resolveNavigationPlugin({
75
- category: "menu",
76
- navigations: activeRiver?.navigations,
77
- plugins,
78
- });
79
-
80
70
  const Menu = React.useMemo(
81
71
  () =>
82
72
  getNavigationPluginModule(
@@ -92,33 +82,25 @@ const LayoutWithMenu = () => {
92
82
  [activeRiver]
93
83
  );
94
84
 
95
- const { isActiveGesture } = useModalAnimationContext();
96
-
97
85
  /** BTB shown when videoModalState - visible & minimized, maximized & animation gesture is active
98
86
  * otherwise hidden if videoModalState - visible
99
87
  * also check isMenuVisible
100
88
  */
101
- const showMenu = React.useMemo(
102
- () =>
103
- ((videoModalState.visible &&
104
- (videoModalState.mode === "MINIMIZED" ||
105
- (videoModalState.mode === "MAXIMIZED" && isActiveGesture))) ||
106
- !videoModalState.visible) &&
107
- isMenuVisible(navigator.currentRoute, navigator.screenData),
108
- [
109
- videoModalState.visible,
110
- videoModalState.mode,
89
+ const showMenu = React.useMemo(() => {
90
+ const menuVisible = isMenuVisible(
111
91
  navigator.currentRoute,
112
- isActiveGesture,
113
- ]
114
- );
92
+ navigator.screenData,
93
+ plugins
94
+ );
95
+
96
+ const shouldShowWithVideo =
97
+ videoModalState.visible &&
98
+ ["MINIMIZED", "MAXIMIZED"].includes(videoModalState.mode);
115
99
 
116
- const isBottomTabsPlugin = plugin?.identifier === "quick-brick-bottom-tabs";
100
+ return menuVisible && (shouldShowWithVideo || !videoModalState.visible);
101
+ }, [videoModalState.visible, videoModalState.mode, navigator.currentRoute]);
117
102
 
118
- const paddingBottom =
119
- showMenu && isBottomTabsPlugin
120
- ? bottomTabBarHeight + safeAreaBottomInset
121
- : 0; // if activeRiver?.navigations has quick-brick-bottom-tabs - append bottomTabBarHeight as padding
103
+ const paddingBottom = showMenu ? bottomTabBarHeight + safeAreaBottomInset : 0; // if activeRiver?.navigations has quick-brick-bottom-tabs - append bottomTabBarHeight as padding
122
104
 
123
105
  const contentStyle = React.useMemo(
124
106
  () =>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applicaster/zapp-react-native-app",
3
- "version": "14.0.0-rc.9",
3
+ "version": "15.0.0-alpha.1089439460",
4
4
  "description": "Zapp App Component for Applicaster's Quick Brick React Native App",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -27,11 +27,11 @@
27
27
  },
28
28
  "homepage": "https://github.com/applicaster/quickbrick#readme",
29
29
  "dependencies": {
30
- "@applicaster/quick-brick-core": "14.0.0-rc.9",
31
- "@applicaster/zapp-react-native-bridge": "14.0.0-rc.9",
32
- "@applicaster/zapp-react-native-redux": "14.0.0-rc.9",
33
- "@applicaster/zapp-react-native-ui-components": "14.0.0-rc.9",
34
- "@applicaster/zapp-react-native-utils": "14.0.0-rc.9",
30
+ "@applicaster/quick-brick-core": "15.0.0-alpha.1089439460",
31
+ "@applicaster/zapp-react-native-bridge": "15.0.0-alpha.1089439460",
32
+ "@applicaster/zapp-react-native-redux": "15.0.0-alpha.1089439460",
33
+ "@applicaster/zapp-react-native-ui-components": "15.0.0-alpha.1089439460",
34
+ "@applicaster/zapp-react-native-utils": "15.0.0-alpha.1089439460",
35
35
  "axios": "^0.28.0",
36
36
  "camelize": "^1.0.0",
37
37
  "query-string": "7.1.3",
@@ -46,23 +46,14 @@
46
46
  "@applicaster/zapp-react-native-tvos-ui-components": "*",
47
47
  "@babel/runtime": "*",
48
48
  "@react-native-community/netinfo": "*",
49
- "immer": "*",
50
49
  "react": "*",
51
50
  "react-native": "*",
52
51
  "react-native-fs": "*",
53
- "react-native-gesture-handler": "*",
54
52
  "react-native-linear-gradient": "*",
55
- "react-native-safe-area-context": "*",
56
53
  "react-native-svg": "*",
57
- "react-native-web": "*",
58
54
  "react-native-webview": "*",
59
55
  "uglify-js": "*",
60
56
  "validate-color": "*",
61
57
  "zustand": "*"
62
- },
63
- "devDependencies": {
64
- "nock": "^10.0.0",
65
- "redux-mock-store": "^1.5.3"
66
- },
67
- "gitHead": "a473487564142c55cdb50f02505cf0b60fe75658"
58
+ }
68
59
  }