react-native-navigation 7.43.0 → 7.45.0

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.
Files changed (73) hide show
  1. package/lib/Mock/Components/ComponentScreen.tsx +29 -15
  2. package/lib/Mock/Components/LayoutComponent.tsx +2 -2
  3. package/lib/Mock/index.js +2 -2
  4. package/lib/android/app/build.gradle +1 -0
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/FeatureToggles.kt +62 -0
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationActivity.java +2 -2
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +20 -4
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/options/ValueAnimationOptions.kt +3 -3
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +3 -3
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalHostLayout.kt +1 -1
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ColorUtils.java +11 -0
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java +3 -2
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt +4 -2
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/StubAnimationListener.kt +19 -0
  15. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +17 -16
  16. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewUtils.java +6 -4
  17. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +0 -1
  18. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsAnimator.kt +2 -2
  19. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +20 -13
  20. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/child/ChildController.java +7 -14
  21. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentPresenter.java +18 -0
  22. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +24 -12
  23. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +52 -24
  24. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenter.java +20 -10
  25. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/{TopBarAnimator.kt → TopBarAppearanceAnimator.kt} +4 -2
  26. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarCollapseBehavior.kt +1 -1
  27. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/topbar/TopBarController.kt +154 -26
  28. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/statusbar/StatusBarPresenter.kt +212 -0
  29. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt +8 -4
  30. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +12 -107
  31. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +1 -1
  32. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/StatusBarColorAnimator.kt +28 -0
  33. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +34 -2
  34. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerVisibilityInfo.kt +5 -0
  35. package/lib/android/app/src/main/java/com/reactnativenavigation/views/animations/{BaseViewAnimator.kt → BaseViewAppearanceAnimator.kt} +4 -4
  36. package/lib/android/app/src/main/java/com/reactnativenavigation/views/animations/ColorAnimator.kt +22 -0
  37. package/lib/android/app/src/main/java/com/reactnativenavigation/views/animations/DefaultViewAnimatorCreator.kt +8 -8
  38. package/lib/android/app/src/main/java/com/reactnativenavigation/views/animations/ViewAnimatorCreator.kt +2 -2
  39. package/lib/android/app/src/main/java/com/reactnativenavigation/views/animations/ViewBkgColorProperty.kt +17 -0
  40. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorAnimator.kt +6 -4
  41. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorEvaluator.kt +4 -2
  42. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +6 -6
  43. package/lib/dist/Mock/Application.d.ts +4 -6
  44. package/lib/dist/Mock/Components/BottomTabs.d.ts +9 -13
  45. package/lib/dist/Mock/Components/ComponentScreen.d.ts +5 -7
  46. package/lib/dist/Mock/Components/ComponentScreen.js +10 -3
  47. package/lib/dist/Mock/Components/LayoutComponent.d.ts +9 -13
  48. package/lib/dist/Mock/Components/Modals.d.ts +9 -13
  49. package/lib/dist/Mock/Components/NavigationButton.d.ts +11 -15
  50. package/lib/dist/Mock/Components/Overlays.d.ts +9 -13
  51. package/lib/dist/Mock/Components/Stack.d.ts +9 -13
  52. package/lib/dist/Mock/Components/TopBar.d.ts +7 -9
  53. package/lib/dist/Mock/connect.js +2 -1
  54. package/lib/dist/Mock/index.js +2 -2
  55. package/lib/dist/src/adapters/NativeEventsReceiver.js +1 -1
  56. package/lib/dist/src/adapters/TouchablePreview.d.ts +2 -2
  57. package/lib/dist/src/commands/LayoutType.js +1 -1
  58. package/lib/dist/src/commands/OptionsProcessor.js +8 -1
  59. package/lib/dist/src/components/Modal.d.ts +1 -1
  60. package/lib/dist/src/interfaces/CommandName.js +1 -1
  61. package/lib/dist/src/interfaces/Options.d.ts +33 -3
  62. package/lib/dist/src/interfaces/Options.js +2 -2
  63. package/lib/dist/src/types.d.ts +1 -0
  64. package/lib/ios/BottomTabsBasePresenter.m +3 -2
  65. package/lib/ios/RNNAppDelegate.mm +1 -2
  66. package/lib/ios/RNNConvert.h +2 -0
  67. package/lib/ios/RNNConvert.m +4 -0
  68. package/lib/ios/RNNStackPresenter.m +3 -2
  69. package/lib/src/adapters/NativeEventsReceiver.ts +3 -3
  70. package/lib/src/adapters/TouchablePreview.tsx +3 -3
  71. package/lib/src/commands/OptionsProcessor.ts +13 -2
  72. package/lib/src/interfaces/Options.ts +38 -3
  73. package/package.json +37 -31
@@ -11,11 +11,11 @@ var OptionsModalPresentationStyle;
11
11
  OptionsModalPresentationStyle["popover"] = "popover";
12
12
  OptionsModalPresentationStyle["fullScreen"] = "fullScreen";
13
13
  OptionsModalPresentationStyle["none"] = "none";
14
- })(OptionsModalPresentationStyle || (exports.OptionsModalPresentationStyle = OptionsModalPresentationStyle = {}));
14
+ })(OptionsModalPresentationStyle = exports.OptionsModalPresentationStyle || (exports.OptionsModalPresentationStyle = {}));
15
15
  var OptionsModalTransitionStyle;
16
16
  (function (OptionsModalTransitionStyle) {
17
17
  OptionsModalTransitionStyle["coverVertical"] = "coverVertical";
18
18
  OptionsModalTransitionStyle["crossDissolve"] = "crossDissolve";
19
19
  OptionsModalTransitionStyle["flipHorizontal"] = "flipHorizontal";
20
20
  OptionsModalTransitionStyle["partialCurl"] = "partialCurl";
21
- })(OptionsModalTransitionStyle || (exports.OptionsModalTransitionStyle = OptionsModalTransitionStyle = {}));
21
+ })(OptionsModalTransitionStyle = exports.OptionsModalTransitionStyle || (exports.OptionsModalTransitionStyle = {}));
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  declare module 'react-lifecycles-compat' {
2
3
  import * as React from 'react';
3
4
  function polyfill(component: React.ComponentClass<any>): void;
@@ -1,5 +1,6 @@
1
1
  #import "BottomTabsBasePresenter.h"
2
2
  #import "RNNBottomTabsController.h"
3
+ #import "RNNConvert.h"
3
4
  #import "UIImage+utils.h"
4
5
 
5
6
  @implementation BottomTabsBasePresenter
@@ -29,7 +30,7 @@
29
30
  [self applyBackgroundColor:[withDefault.bottomTabs.backgroundColor withDefault:nil]
30
31
  translucent:[withDefault.bottomTabs.translucent withDefault:NO]];
31
32
  [bottomTabs setTabBarHideShadow:[withDefault.bottomTabs.hideShadow withDefault:NO]];
32
- [bottomTabs setTabBarStyle:[RCTConvert UIBarStyle:[withDefault.bottomTabs.barStyle
33
+ [bottomTabs setTabBarStyle:[RNNConvert UIBarStyle:[withDefault.bottomTabs.barStyle
33
34
  withDefault:@"default"]]];
34
35
  [self applyTabBarBorder:withDefault.bottomTabs];
35
36
  [self applyTabBarShadow:withDefault.bottomTabs.shadow];
@@ -60,7 +61,7 @@
60
61
  }
61
62
 
62
63
  if (mergeOptions.bottomTabs.barStyle.hasValue) {
63
- [bottomTabs setTabBarStyle:[RCTConvert UIBarStyle:mergeOptions.bottomTabs.barStyle.get]];
64
+ [bottomTabs setTabBarStyle:[RNNConvert UIBarStyle:mergeOptions.bottomTabs.barStyle.get]];
64
65
  }
65
66
 
66
67
  if (mergeOptions.bottomTabs.translucent.hasValue) {
@@ -2,8 +2,7 @@
2
2
  #import <ReactNativeNavigation/ReactNativeNavigation.h>
3
3
 
4
4
  #if RCT_NEW_ARCH_ENABLED
5
- #import "RCTAppSetupUtils.h"
6
- #import "RCTLegacyInteropComponents.h"
5
+
7
6
  #import <React/CoreModulesPlugins.h>
8
7
  #import <React/RCTCxxBridgeDelegate.h>
9
8
  #import <React/RCTLegacyViewManagerInteropComponentView.h>
@@ -7,4 +7,6 @@
7
7
 
8
8
  + (UIModalTransitionStyle)UIModalTransitionStyle:(id)json;
9
9
 
10
+ + (UIBarStyle)UIBarStyle:(id)json;
11
+
10
12
  @end
@@ -32,4 +32,8 @@ RCT_ENUM_CONVERTER(UIModalPresentationStyle, (@{
32
32
  }),
33
33
  UIModalPresentationFullScreen, integerValue)
34
34
 
35
+ RCT_ENUM_CONVERTER(UIBarStyle,
36
+ (@{@"default" : @(UIBarStyleDefault), @"black" : @(UIBarStyleBlack)}),
37
+ UIBarStyleDefault, integerValue)
38
+
35
39
  @end
@@ -1,5 +1,6 @@
1
1
  #import "RNNStackPresenter.h"
2
2
  #import "InteractivePopGestureDelegate.h"
3
+ #import "RNNConvert.h"
3
4
  #import "RNNCustomTitleView.h"
4
5
  #import "RNNReactBackgroundView.h"
5
6
  #import "RNNStackController.h"
@@ -68,7 +69,7 @@
68
69
  stack.interactivePopGestureRecognizer.delegate = _interactivePopGestureDelegate;
69
70
 
70
71
  [stack
71
- setBarStyle:[RCTConvert UIBarStyle:[withDefault.topBar.barStyle withDefault:@"default"]]];
72
+ setBarStyle:[RNNConvert UIBarStyle:[withDefault.topBar.barStyle withDefault:@"default"]]];
72
73
  [stack setRootBackgroundImage:[withDefault.rootBackgroundImage withDefault:nil]];
73
74
  [stack setNavigationBarTestId:[withDefault.topBar.testID withDefault:nil]];
74
75
  [stack setNavigationBarVisible:[withDefault.topBar.visible withDefault:YES]
@@ -126,7 +127,7 @@
126
127
  }
127
128
 
128
129
  if (mergeOptions.topBar.barStyle.hasValue) {
129
- [stack setBarStyle:[RCTConvert UIBarStyle:mergeOptions.topBar.barStyle.get]];
130
+ [stack setBarStyle:[RNNConvert UIBarStyle:mergeOptions.topBar.barStyle.get]];
130
131
  }
131
132
 
132
133
  if (mergeOptions.topBar.background.clipToBounds.hasValue) {
@@ -23,14 +23,14 @@ export class NativeEventsReceiver {
23
23
  constructor() {
24
24
  try {
25
25
  this.emitter = new NativeEventEmitter(NativeModules.RNNEventEmitter);
26
- } catch (e) {
27
- this.emitter = ({
26
+ } catch {
27
+ this.emitter = {
28
28
  addListener: () => {
29
29
  return {
30
30
  remove: () => undefined,
31
31
  };
32
32
  },
33
- } as any) as NativeEventEmitter;
33
+ } as any as NativeEventEmitter;
34
34
  }
35
35
  }
36
36
 
@@ -22,8 +22,8 @@ interface GestureResponderEventWithForce extends NativeSyntheticEvent<NativeTouc
22
22
  export interface Props {
23
23
  children?: React.ReactNode;
24
24
  touchableComponent?:
25
- | TouchableHighlight
26
- | TouchableOpacity
25
+ | typeof TouchableHighlight
26
+ | typeof TouchableOpacity
27
27
  | TouchableNativeFeedback
28
28
  | TouchableWithoutFeedback
29
29
  | React.ReactNode;
@@ -121,7 +121,7 @@ export class TouchablePreview extends React.PureComponent<Props> {
121
121
  const Touchable =
122
122
  Platform.OS === 'ios' && touchableComponent instanceof TouchableNativeFeedback
123
123
  ? TouchableWithoutFeedback
124
- : (touchableComponent as typeof React.Component);
124
+ : (touchableComponent as React.Component);
125
125
 
126
126
  // Wrap component with Touchable for handling platform touches
127
127
  // and a single react View for detecting force and timing.
@@ -20,6 +20,8 @@ import {
20
20
  OptionsSearchBar,
21
21
  OptionsTopBar,
22
22
  StackAnimationOptions,
23
+ StatusBarAnimationOptions,
24
+ TopBarAnimationOptions,
23
25
  ViewAnimationOptions,
24
26
  } from '../interfaces/Options';
25
27
  import { Deprecations } from './Deprecations';
@@ -117,7 +119,7 @@ export class OptionsProcessor {
117
119
  }
118
120
 
119
121
  private processColor(key: string, value: any, options: Record<string, any>) {
120
- if (isEqual(key, 'color') || endsWith(key, 'Color')) {
122
+ if ((isEqual(key, 'color') || endsWith(key, 'Color')) && !isEqual(key, 'bkgColor')) {
121
123
  if (Platform.OS === 'ios') this.processColorIOS(key, value, options);
122
124
  else this.processColorAndroid(key, value, options);
123
125
  }
@@ -399,7 +401,16 @@ export class OptionsProcessor {
399
401
  }
400
402
  if (animation.topBar && !has(animation, 'topBar.enter') && !has(animation, 'topBar.exit')) {
401
403
  parentOptions.push!!.topBar = {
402
- enter: animation.topBar as ViewAnimationOptions,
404
+ enter: animation.topBar as TopBarAnimationOptions,
405
+ };
406
+ }
407
+ if (
408
+ animation.statusBar &&
409
+ !has(animation, 'statusBar.enter') &&
410
+ !has(animation, 'statusBar.exit')
411
+ ) {
412
+ parentOptions.push!!.statusBar = {
413
+ enter: animation.statusBar as StatusBarAnimationOptions,
403
414
  };
404
415
  }
405
416
  if (
@@ -1267,6 +1267,13 @@ export interface IconInsets {
1267
1267
  right?: number;
1268
1268
  }
1269
1269
 
1270
+ export interface ColorAnimationOptions {
1271
+ /**
1272
+ * Color duration time; Default is as determined by the OS
1273
+ */
1274
+ duration?: number;
1275
+ }
1276
+
1270
1277
  export interface ViewAnimationOptions extends ScreenAnimationOptions {
1271
1278
  /**
1272
1279
  * ID of the Top Bar we want to animate
@@ -1274,6 +1281,24 @@ export interface ViewAnimationOptions extends ScreenAnimationOptions {
1274
1281
  id?: string;
1275
1282
  }
1276
1283
 
1284
+ export interface TopBarAnimationOptions extends ViewAnimationOptions {
1285
+ /**
1286
+ * Animation of the top-bar's background color, in case the top-bar background color
1287
+ * has been explicitly specified.
1288
+ *
1289
+ * Applicable only in transition of screens with color (non-component) backgrounds.
1290
+ */
1291
+ bkgColor?: ColorAnimationOptions;
1292
+ }
1293
+
1294
+ export interface StatusBarAnimationOptions extends ViewAnimationOptions {
1295
+ /**
1296
+ * Animation of the status-bar's background color, in case its background color
1297
+ * has been explicitly specified.
1298
+ */
1299
+ bkgColor?: ColorAnimationOptions;
1300
+ }
1301
+
1277
1302
  export interface EnterExitAnimationOptions {
1278
1303
  /**
1279
1304
  * Animate opening component
@@ -1332,10 +1357,20 @@ export interface StackAnimationOptions {
1332
1357
  * Configure animations for the top bar
1333
1358
  */
1334
1359
  topBar?:
1335
- | ViewAnimationOptions
1360
+ | TopBarAnimationOptions
1336
1361
  | {
1337
- enter?: ViewAnimationOptions;
1338
- exit?: ViewAnimationOptions;
1362
+ enter?: TopBarAnimationOptions;
1363
+ exit?: TopBarAnimationOptions;
1364
+ };
1365
+ /**
1366
+ * Configure animations for the status bar (typically aligned
1367
+ * with the top-bar's)
1368
+ */
1369
+ statusBar?:
1370
+ | StatusBarAnimationOptions
1371
+ | {
1372
+ enter?: StatusBarAnimationOptions;
1373
+ exit?: StatusBarAnimationOptions;
1339
1374
  };
1340
1375
  /**
1341
1376
  * Configure animations for the bottom tabs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-navigation",
3
- "version": "7.43.0",
3
+ "version": "7.45.0",
4
4
  "description": "React Native Navigation - truly native navigation for iOS and Android",
5
5
  "license": "MIT",
6
6
  "nativePackage": true,
@@ -64,40 +64,43 @@
64
64
  "hoist-non-react-statics": "3.x.x",
65
65
  "lodash": "4.17.x",
66
66
  "prop-types": "15.x.x",
67
- "react-lifecycles-compat": "2.0.0",
67
+ "react-lifecycles-compat": "^3.0.4",
68
68
  "tslib": "1.9.3"
69
69
  },
70
70
  "devDependencies": {
71
- "@babel/core": "7.22.9",
71
+ "@babel/core": "^7.25.2",
72
72
  "@babel/plugin-proposal-export-default-from": "7.10.1",
73
73
  "@babel/plugin-proposal-export-namespace-from": "7.10.1",
74
- "@babel/runtime": "7.22.6",
75
- "@babel/types": "7.22.5",
76
- "@babel/preset-env": "^7.22.9",
77
- "@react-native/metro-config": "^0.73.2",
78
- "@react-native/babel-preset": "^0.73.18",
79
- "@react-native/typescript-config": "^0.73.1",
80
- "@react-native-community/blur": "^4.4.1",
81
- "@react-native-community/datetimepicker": "^3.4.7",
82
- "@react-native-community/eslint-config": "2.0.0",
83
- "@react-native-community/netinfo": "^5.9.4",
74
+ "@babel/preset-env": "^7.25.3",
75
+ "@babel/runtime": "^7.25.0",
76
+ "@babel/types": "7.25.0",
77
+ "@react-native-community/cli": "15.0.1",
78
+ "@react-native-community/cli-platform-android": "15.0.1",
79
+ "@react-native-community/cli-platform-ios": "15.0.1",
80
+ "@react-native-community/datetimepicker": "^8.2.0",
81
+ "@react-native-community/eslint-config": "3.2.0",
82
+ "@react-native-community/netinfo": "^11.4.1",
83
+ "@react-native/babel-preset": "0.76.6",
84
+ "@react-native/eslint-config": "0.76.6",
85
+ "@react-native/metro-config": "0.76.6",
86
+ "@react-native/typescript-config": "0.76.6",
84
87
  "@testing-library/jest-native": "^5.4.2",
85
- "@testing-library/react-native": "^12.0.1",
86
- "@types/hoist-non-react-statics": "^3.0.1",
88
+ "@testing-library/react-native": "^13.0.1",
89
+ "@types/hoist-non-react-statics": "^3.3.6",
87
90
  "@types/jasmine": "3.5.10",
88
91
  "@types/jest": "27.0.2",
89
92
  "@types/lodash": "^4.14.149",
90
- "@types/react": "16.9.41",
91
- "@types/react-native": "0.63.1",
92
- "@types/react-test-renderer": "16.9.2",
93
- "@typescript-eslint/eslint-plugin": "4.33.0",
94
- "@typescript-eslint/parser": "4.33.0",
93
+ "@types/react": "^18.2.6",
94
+ "@types/react-test-renderer": "^18.0.0",
95
+ "@typescript-eslint/eslint-plugin": "8.21.0",
96
+ "@typescript-eslint/parser": "8.21.0",
95
97
  "babel-jest": "^27.0.0",
96
98
  "clang-format": "^1.4.0",
97
- "detox": "20.19.5",
99
+ "detox": "20.32.0",
98
100
  "detox-testing-library-rnn-adapter": "^2.0.3",
99
- "eslint": "7.32.0",
101
+ "eslint": "^8.19.0",
100
102
  "eslint-config-prettier": "6.11.0",
103
+ "eslint-formatter-codeframe": "^7.32.1",
101
104
  "eslint-plugin-prettier": "3.1.4",
102
105
  "github-release-notes": "https://github.com/yogevbd/github-release-notes/tarball/e601b3dba72dcd6cba323c1286ea6dd0c0110b58",
103
106
  "husky": "4.2.5",
@@ -107,22 +110,22 @@
107
110
  "metro-react-native-babel-preset": "^0.76.2",
108
111
  "pixelmatch": "^5.2.1",
109
112
  "pngjs": "^6.0.0",
110
- "prettier": "2.1.2",
111
- "react": "18.2.0",
112
- "react-native": "0.73.3",
113
+ "prettier": "2.8.8",
114
+ "react": "18.3.1",
115
+ "react-native": "0.76.6",
113
116
  "react-native-fast-image": "^8.6.3",
114
- "react-native-gesture-handler": "2.14.1",
115
- "react-native-reanimated": "3.16.1",
117
+ "react-native-gesture-handler": "^2.22.1",
118
+ "react-native-reanimated": "3.16.7",
116
119
  "react-native-ui-lib": "7.3.6",
117
120
  "react-redux": "5.x.x",
118
- "react-test-renderer": "18.2.0",
121
+ "react-test-renderer": "18.3.1",
119
122
  "redux": "3.x.x",
120
123
  "remx": "3.x.x",
121
124
  "semver": "5.x.x",
122
125
  "shell-utils": "1.x.x",
123
126
  "ts-mockito": "^2.3.1",
124
127
  "typedoc": "0.x.x",
125
- "typescript": "5.5.4"
128
+ "typescript": "5.0.4"
126
129
  },
127
130
  "husky": {
128
131
  "hooks": {
@@ -168,7 +171,7 @@
168
171
  "emulator": {
169
172
  "type": "android.emulator",
170
173
  "device": {
171
- "avdName": "Pixel_API_28"
174
+ "avdName": "Pixel_3a_API_34"
172
175
  }
173
176
  }
174
177
  },
@@ -188,7 +191,10 @@
188
191
  "type": "android.apk",
189
192
  "binaryPath": "playground/android/app/build/outputs/apk/debug/app-debug.apk",
190
193
  "start": "npm start -- --e2e",
191
- "build": "cd playground/android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug"
194
+ "build": "cd playground/android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug",
195
+ "reversePorts": [
196
+ 8081
197
+ ]
192
198
  },
193
199
  "android.release": {
194
200
  "type": "android.apk",