react-native-navigation 7.42.0 → 7.99.1-testbla

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 (42) hide show
  1. package/lib/Mock/Components/ComponentScreen.tsx +15 -29
  2. package/lib/Mock/Components/LayoutComponent.tsx +2 -2
  3. package/lib/Mock/index.js +2 -2
  4. package/lib/android/app/build.gradle +0 -1
  5. package/lib/android/app/src/main/java/com/reactnativenavigation/NavigationApplication.java +1 -7
  6. package/lib/android/app/src/main/java/com/reactnativenavigation/react/ReactView.java +3 -3
  7. package/lib/android/app/src/main/java/com/reactnativenavigation/react/modal/ModalHostLayout.kt +1 -1
  8. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactTypefaceUtils.java +2 -3
  9. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt +2 -4
  10. package/lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewUtils.java +4 -6
  11. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt +4 -8
  12. package/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +1 -1
  13. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorAnimator.kt +4 -6
  14. package/lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/BackgroundColorEvaluator.kt +2 -4
  15. package/lib/android/app/src/reactNative71/java/com/reactnativenavigation/react/modal/ModalContentLayout.kt +6 -6
  16. package/lib/dist/Mock/Application.d.ts +6 -4
  17. package/lib/dist/Mock/Components/BottomTabs.d.ts +13 -9
  18. package/lib/dist/Mock/Components/ComponentScreen.d.ts +7 -5
  19. package/lib/dist/Mock/Components/ComponentScreen.js +3 -10
  20. package/lib/dist/Mock/Components/LayoutComponent.d.ts +13 -9
  21. package/lib/dist/Mock/Components/Modals.d.ts +13 -9
  22. package/lib/dist/Mock/Components/NavigationButton.d.ts +15 -11
  23. package/lib/dist/Mock/Components/Overlays.d.ts +13 -9
  24. package/lib/dist/Mock/Components/Stack.d.ts +13 -9
  25. package/lib/dist/Mock/Components/TopBar.d.ts +9 -7
  26. package/lib/dist/Mock/connect.js +1 -2
  27. package/lib/dist/Mock/index.js +2 -2
  28. package/lib/dist/src/adapters/NativeEventsReceiver.js +1 -1
  29. package/lib/dist/src/adapters/TouchablePreview.d.ts +2 -2
  30. package/lib/dist/src/commands/LayoutType.js +1 -1
  31. package/lib/dist/src/components/Modal.d.ts +1 -1
  32. package/lib/dist/src/interfaces/CommandName.js +1 -1
  33. package/lib/dist/src/interfaces/Options.js +2 -2
  34. package/lib/dist/src/types.d.ts +0 -1
  35. package/lib/ios/BottomTabsBasePresenter.m +2 -3
  36. package/lib/ios/RNNAppDelegate.mm +2 -1
  37. package/lib/ios/RNNConvert.h +0 -3
  38. package/lib/ios/RNNConvert.m +0 -9
  39. package/lib/ios/RNNStackPresenter.m +2 -3
  40. package/lib/src/adapters/NativeEventsReceiver.ts +3 -3
  41. package/lib/src/adapters/TouchablePreview.tsx +3 -3
  42. package/package.json +31 -37
@@ -1,6 +1,6 @@
1
1
  import React, { Component } from 'react';
2
- import { View, Text, TouchableOpacity, Image, ImageURISource } from 'react-native';
3
- import { Navigation, ImageResource } from 'react-native-navigation';
2
+ import { View, Text, TouchableOpacity, Image, ImageURISource} from 'react-native';
3
+ import { Navigation, ImageResource} from 'react-native-navigation';
4
4
  import { ComponentProps } from '../ComponentProps';
5
5
  import { VISIBLE_SCREEN_TEST_ID } from '../constants';
6
6
  import { LayoutStore } from '../Stores/LayoutStore';
@@ -10,7 +10,8 @@ import { events } from '../Stores/EventsStore';
10
10
  import _ from 'lodash';
11
11
  import { switchTabByIndex } from '../actions/layoutActions';
12
12
 
13
- function isURISource(src: ImageResource | undefined): src is ImageURISource {
13
+
14
+ function isURISource(src: ImageResource| undefined): src is ImageURISource {
14
15
  return !!src && typeof src === 'object' && 'uri' in src;
15
16
  }
16
17
 
@@ -35,15 +36,12 @@ export const ComponentScreen = connect(
35
36
  if (bottomTabsOptions?.visible === false) return null;
36
37
  const buttons = bottomTabs!.children!.map((child, i) => {
37
38
  const bottomTabOptions = child.resolveOptions().bottomTab;
38
- const icon =
39
- (bottomTabs as any).selectedIndex === i
40
- ? bottomTabOptions?.selectedIcon
41
- : bottomTabOptions?.icon;
39
+ const icon = (bottomTabs as any).selectedIndex === i ? bottomTabOptions?.selectedIcon : bottomTabOptions?.icon;
42
40
  const iconURI = isURISource(icon) ? icon.uri : undefined;
43
41
  return (
44
42
  <View key={`tab-${i}`}>
45
43
  <TouchableOpacity
46
- style={{ padding: 10 }}
44
+ style={{padding:10}}
47
45
  testID={bottomTabOptions?.testID}
48
46
  onPress={() => {
49
47
  events.invokeBottomTabPressed({
@@ -53,34 +51,22 @@ export const ComponentScreen = connect(
53
51
  switchTabByIndex(this.props.layoutNode.getBottomTabs(), i);
54
52
  }}
55
53
  >
56
- <View style={{ justifyContent: 'center', alignItems: 'center' }}>
57
- <Text>{bottomTabOptions?.badge}</Text>
58
- {iconURI && (
59
- <Image
60
- style={{ width: 18, height: 18, marginBottom: 5 }}
61
- source={{ uri: iconURI }}
62
- />
63
- )}
64
- <Text style={{ fontSize: 12 }}>{bottomTabOptions?.text || ''}</Text>
65
- </View>
54
+ <View style={{justifyContent: 'center', alignItems: 'center'}}>
55
+ <Text>{bottomTabOptions?.badge}</Text>
56
+ {iconURI && <Image style={{width: 18, height: 18, marginBottom: 5}} source={{uri: iconURI}}/>}
57
+ <Text style={{fontSize: 12}}>{bottomTabOptions?.text || ''}</Text>
58
+ </View>
66
59
  </TouchableOpacity>
67
60
  </View>
68
61
  );
69
62
  });
70
63
 
71
64
  return (
72
- <View
73
- testID={bottomTabsOptions?.testID}
74
- style={{
75
- flexDirection: 'row',
76
- justifyContent: 'center',
77
- width: '100%',
78
- backgroundColor: '#F0F2F5',
79
- }}
80
- >
65
+ <View
66
+ testID={bottomTabsOptions?.testID}
67
+ style={{flexDirection: 'row',justifyContent: 'center', width: '100%', backgroundColor: '#F0F2F5'}}>
81
68
  {buttons}
82
- </View>
83
- );
69
+ </View>);
84
70
  }
85
71
 
86
72
  render() {
@@ -19,8 +19,8 @@ export const LayoutComponent = class extends Component<ComponentProps> {
19
19
  return <View />;
20
20
  }
21
21
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {
22
- const err = new Error(
23
- `Error while trying to render layout ${this.props.layoutNode.nodeId} of type ${this.props.layoutNode.type}: ${error}\n${errorInfo?.componentStack}`
22
+ const err = new Error(
23
+ `Error while trying to render layout ${this.props.layoutNode.nodeId} of type ${this.props.layoutNode.type}: ${error}\n${errorInfo?.componentStack}`,
24
24
  );
25
25
  (err as any).cause = error;
26
26
  throw err;
package/lib/Mock/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mockNativeComponents = exports.ApplicationMock = void 0;
3
+ exports.ApplicationMock = void 0;
4
+ exports.mockNativeComponents = mockNativeComponents;
4
5
  const tslib_1 = require("tslib");
5
6
  exports.ApplicationMock = require('./Application').Application;
6
7
  tslib_1.__exportStar(require("./constants"), exports);
@@ -11,4 +12,3 @@ function mockNativeComponents() {
11
12
  const { Navigation } = require('react-native-navigation');
12
13
  Navigation.mockNativeComponents(new NativeCommandsSender(), new NativeEventsReceiver(), new AppRegistryService());
13
14
  }
14
- exports.mockNativeComponents = mockNativeComponents;
@@ -20,7 +20,6 @@ def DEFAULT_KOTLIN_STDLIB = 'kotlin-stdlib-jdk8'
20
20
  def kotlinVersion = safeExtGet("RNNKotlinVersion", DEFAULT_KOTLIN_VERSION)
21
21
  def kotlinStdlib = safeExtGet('RNNKotlinStdlib',DEFAULT_KOTLIN_STDLIB )
22
22
  def kotlinCoroutinesCore = safeExtGet('RNNKotlinCoroutinesCore', '1.5.2')
23
-
24
23
  android {
25
24
  namespace 'com.reactnativenavigation'
26
25
  compileSdkVersion safeExtGetFallbackLowerBound('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
@@ -4,12 +4,10 @@ import android.app.Application;
4
4
 
5
5
  import com.facebook.react.ReactApplication;
6
6
  import com.facebook.react.ReactNativeHost;
7
- import com.facebook.react.soloader.OpenSourceMergedSoMapping;
8
7
  import com.facebook.soloader.SoLoader;
9
8
  import com.reactnativenavigation.react.ReactGateway;
10
9
  import com.reactnativenavigation.viewcontrollers.externalcomponent.ExternalComponentCreator;
11
10
 
12
- import java.io.IOException;
13
11
  import java.util.HashMap;
14
12
  import java.util.Map;
15
13
 
@@ -25,11 +23,7 @@ public abstract class NavigationApplication extends Application implements React
25
23
  public void onCreate() {
26
24
  super.onCreate();
27
25
  instance = this;
28
- try {
29
- SoLoader.init(this, OpenSourceMergedSoMapping.INSTANCE);
30
- } catch (IOException e) {
31
- throw new RuntimeException(e);
32
- }
26
+ SoLoader.init(this, false);
33
27
  reactGateway = createReactGateway();
34
28
  }
35
29
 
@@ -5,8 +5,6 @@ import android.content.Context;
5
5
  import android.os.Bundle;
6
6
  import android.view.MotionEvent;
7
7
 
8
- import androidx.annotation.RestrictTo;
9
-
10
8
  import com.facebook.react.ReactInstanceManager;
11
9
  import com.facebook.react.ReactRootView;
12
10
  import com.facebook.react.bridge.ReactContext;
@@ -14,12 +12,14 @@ import com.facebook.react.config.ReactFeatureFlags;
14
12
  import com.facebook.react.uimanager.JSTouchDispatcher;
15
13
  import com.facebook.react.uimanager.UIManagerModule;
16
14
  import com.facebook.react.uimanager.events.EventDispatcher;
15
+ import com.reactnativenavigation.viewcontrollers.viewcontroller.ScrollEventListener;
17
16
  import com.reactnativenavigation.react.events.ComponentType;
18
17
  import com.reactnativenavigation.react.events.EventEmitter;
19
18
  import com.reactnativenavigation.viewcontrollers.viewcontroller.IReactView;
20
- import com.reactnativenavigation.viewcontrollers.viewcontroller.ScrollEventListener;
21
19
  import com.reactnativenavigation.views.component.Renderable;
22
20
 
21
+ import androidx.annotation.RestrictTo;
22
+
23
23
  @SuppressLint("ViewConstructor")
24
24
  public class ReactView extends ReactRootView implements IReactView, Renderable {
25
25
 
@@ -34,7 +34,7 @@ open class ModalHostLayout(reactContext: ThemedReactContext) : ViewGroup(reactCo
34
34
  }
35
35
 
36
36
  @TargetApi(23)
37
- override fun dispatchProvideStructure(structure: ViewStructure) {
37
+ override fun dispatchProvideStructure(structure: ViewStructure?) {
38
38
  mHostView.dispatchProvideStructure(structure)
39
39
  }
40
40
 
@@ -18,7 +18,6 @@ import android.graphics.Typeface;
18
18
  import android.text.TextUtils;
19
19
  import androidx.annotation.Nullable;
20
20
  import com.facebook.react.bridge.ReadableArray;
21
- import com.facebook.react.common.ReactConstants;
22
21
  import com.facebook.react.views.text.ReactFontManager;
23
22
  import com.facebook.react.views.text.ReactTextShadowNode;
24
23
  import java.util.ArrayList;
@@ -97,12 +96,12 @@ public class ReactTypefaceUtils {
97
96
 
98
97
  int want = 0;
99
98
  if ((weight == Typeface.BOLD)
100
- || ((oldStyle & Typeface.BOLD) != 0 && weight == ReactConstants.UNSET)) {
99
+ || ((oldStyle & Typeface.BOLD) != 0 && weight == ReactTextShadowNode.UNSET)) {
101
100
  want |= Typeface.BOLD;
102
101
  }
103
102
 
104
103
  if ((style == Typeface.ITALIC)
105
- || ((oldStyle & Typeface.ITALIC) != 0 && style == ReactConstants.UNSET)) {
104
+ || ((oldStyle & Typeface.ITALIC) != 0 && style == ReactTextShadowNode.UNSET)) {
106
105
  want |= Typeface.ITALIC;
107
106
  }
108
107
 
@@ -1,9 +1,7 @@
1
1
  package com.reactnativenavigation.utils
2
2
 
3
- import com.facebook.react.common.annotations.UnstableReactNativeAPI
4
- import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable
3
+ import com.facebook.react.views.view.ReactViewBackgroundDrawable
5
4
  import com.facebook.react.views.view.ReactViewGroup
6
5
 
7
- @OptIn(UnstableReactNativeAPI::class)
8
6
  val ReactViewGroup.borderRadius: Float
9
- get() = (background as? CSSBackgroundDrawable)?.fullBorderWidth ?: 0f
7
+ get() = (background as? ReactViewBackgroundDrawable)?.fullBorderRadius ?: 0f
@@ -5,6 +5,8 @@ import android.view.View;
5
5
  import android.view.ViewGroup;
6
6
  import android.view.ViewParent;
7
7
 
8
+ import com.facebook.react.views.view.ReactViewBackgroundDrawable;
9
+
8
10
  import java.util.ArrayList;
9
11
  import java.util.List;
10
12
 
@@ -12,9 +14,6 @@ import androidx.annotation.Nullable;
12
14
 
13
15
  import static com.reactnativenavigation.utils.ObjectUtils.perform;
14
16
 
15
- import com.facebook.react.common.annotations.UnstableReactNativeAPI;
16
- import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable;
17
-
18
17
  public class ViewUtils {
19
18
  @Nullable
20
19
  public static <T extends View> T findChildByClass(ViewGroup root, Class<T> clazz) {
@@ -108,10 +107,9 @@ public class ViewUtils {
108
107
  return ((ViewGroup) parent).indexOfChild(view);
109
108
  }
110
109
 
111
- @UnstableReactNativeAPI
112
110
  public static int getBackgroundColor(View view) {
113
- if (view.getBackground() instanceof CSSBackgroundDrawable) {
114
- return ((CSSBackgroundDrawable) view.getBackground()).getColor();
111
+ if (view.getBackground() instanceof ReactViewBackgroundDrawable) {
112
+ return ((ReactViewBackgroundDrawable) view.getBackground()).getColor();
115
113
  }
116
114
  throw new RuntimeException(view.getBackground().getClass().getSimpleName() + " is not ReactViewBackgroundDrawable");
117
115
  }
@@ -1,19 +1,15 @@
1
1
  package com.reactnativenavigation.viewcontrollers.viewcontroller
2
2
 
3
- import android.annotation.SuppressLint
4
3
  import com.facebook.react.ReactInstanceManager
5
4
  import com.facebook.react.modules.i18nmanager.I18nUtil
6
5
  import com.reactnativenavigation.options.Options
7
6
 
8
7
  class LayoutDirectionApplier {
9
- @SuppressLint("WrongConstant")
10
- fun apply(root: ViewController<*>, options: Options) {
11
- val currentContext = root.view?.context ?: return
12
-
13
- if (options.layout.direction.hasValue()) {
8
+ fun apply(root: ViewController<*>, options: Options, instanceManager: ReactInstanceManager) {
9
+ if (options.layout.direction.hasValue() && instanceManager.currentReactContext != null) {
14
10
  root.activity.window.decorView.layoutDirection = options.layout.direction.get()
15
- I18nUtil.instance.allowRTL(currentContext, options.layout.direction.isRtl)
16
- I18nUtil.instance.forceRTL(currentContext, options.layout.direction.isRtl)
11
+ I18nUtil.getInstance().allowRTL(instanceManager.currentReactContext, options.layout.direction.isRtl)
12
+ I18nUtil.getInstance().forceRTL(instanceManager.currentReactContext, options.layout.direction.isRtl)
17
13
  }
18
14
  }
19
15
  }
@@ -35,7 +35,7 @@ public class RootPresenter {
35
35
  }
36
36
 
37
37
  public void setRoot(ViewController appearingRoot, ViewController<?> disappearingRoot, Options defaultOptions, CommandListener listener, ReactInstanceManager reactInstanceManager) {
38
- layoutDirectionApplier.apply(appearingRoot, defaultOptions);
38
+ layoutDirectionApplier.apply(appearingRoot, defaultOptions, reactInstanceManager);
39
39
  rootLayout.addView(appearingRoot.getView(), matchParentWithBehaviour(new BehaviourDelegate(appearingRoot)));
40
40
  Options options = appearingRoot.resolveCurrentOptions(defaultOptions);
41
41
  AnimationOptions enter = options.animations.setRoot.getEnter();
@@ -4,23 +4,21 @@ import android.animation.Animator
4
4
  import android.animation.ObjectAnimator
5
5
  import android.view.View
6
6
  import android.view.ViewGroup
7
- import com.facebook.react.common.annotations.UnstableReactNativeAPI
8
- import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable
9
7
  import com.facebook.react.views.text.ReactTextView
8
+ import com.facebook.react.views.view.ReactViewBackgroundDrawable
10
9
  import com.reactnativenavigation.options.SharedElementTransitionOptions
11
10
  import com.reactnativenavigation.utils.*
12
11
 
13
- @OptIn(UnstableReactNativeAPI::class)
14
12
  class BackgroundColorAnimator(from: View, to: View) : PropertyAnimatorCreator<ViewGroup>(from, to) {
15
13
  override fun shouldAnimateProperty(fromChild: ViewGroup, toChild: ViewGroup): Boolean {
16
- return fromChild.background is CSSBackgroundDrawable &&
17
- toChild.background is CSSBackgroundDrawable && (fromChild.background as CSSBackgroundDrawable).color != (toChild.background as CSSBackgroundDrawable).color
14
+ return fromChild.background is ReactViewBackgroundDrawable &&
15
+ toChild.background is ReactViewBackgroundDrawable && (fromChild.background as ReactViewBackgroundDrawable).color != (toChild.background as ReactViewBackgroundDrawable).color
18
16
  }
19
17
 
20
18
  override fun excludedViews() = listOf(ReactTextView::class.java)
21
19
 
22
20
  override fun create(options: SharedElementTransitionOptions): Animator {
23
- val backgroundColorEvaluator = BackgroundColorEvaluator(to.background as CSSBackgroundDrawable)
21
+ val backgroundColorEvaluator = BackgroundColorEvaluator(to.background as ReactViewBackgroundDrawable)
24
22
  val fromColor = ColorUtils.colorToLAB(ViewUtils.getBackgroundColor(from))
25
23
  val toColor = ColorUtils.colorToLAB(ViewUtils.getBackgroundColor(to))
26
24
 
@@ -2,13 +2,11 @@ package com.reactnativenavigation.views.element.animators
2
2
 
3
3
  import android.animation.TypeEvaluator
4
4
  import androidx.core.graphics.ColorUtils
5
- import com.facebook.react.common.annotations.UnstableReactNativeAPI
6
- import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable
5
+ import com.facebook.react.views.view.ReactViewBackgroundDrawable
7
6
 
8
- class BackgroundColorEvaluator @OptIn(UnstableReactNativeAPI::class) constructor(private val background: CSSBackgroundDrawable) : TypeEvaluator<DoubleArray> {
7
+ class BackgroundColorEvaluator(private val background: ReactViewBackgroundDrawable) : TypeEvaluator<DoubleArray> {
9
8
  private val color = DoubleArray(3)
10
9
 
11
- @OptIn(UnstableReactNativeAPI::class)
12
10
  override fun evaluate(ratio: Float, from: DoubleArray, to: DoubleArray): DoubleArray {
13
11
  ColorUtils.blendLAB(from, to, ratio.toDouble(), color)
14
12
  background.color = com.reactnativenavigation.utils.ColorUtils.labToColor(color)
@@ -49,17 +49,17 @@ class ModalContentLayout(context: Context?) : ReactViewGroup(context), RootView{
49
49
  updateFirstChildView()
50
50
  }
51
51
  }
52
- override fun onChildStartedNativeGesture(child: View, androidEvent: MotionEvent) {
52
+ override fun onChildStartedNativeGesture(child: View, androidEvent: MotionEvent?) {
53
53
  mJSTouchDispatcher.onChildStartedNativeGesture(androidEvent, this.getEventDispatcher())
54
54
  }
55
- override fun onChildStartedNativeGesture(androidEvent: MotionEvent) {
55
+ override fun onChildStartedNativeGesture(androidEvent: MotionEvent?) {
56
56
  mJSTouchDispatcher.onChildStartedNativeGesture(androidEvent, this.getEventDispatcher())
57
57
  }
58
- override fun onChildEndedNativeGesture(child: View, androidEvent: MotionEvent) {
58
+ override fun onChildEndedNativeGesture(child: View, androidEvent: MotionEvent?) {
59
59
  mJSTouchDispatcher.onChildEndedNativeGesture(androidEvent, this.getEventDispatcher())
60
60
  }
61
61
  override fun requestDisallowInterceptTouchEvent(disallowIntercept: Boolean) {}
62
- private fun getEventDispatcher(): EventDispatcher {
62
+ private fun getEventDispatcher(): EventDispatcher? {
63
63
  val reactContext: ReactContext = this.getReactContext()
64
64
  return reactContext.getNativeModule(UIManagerModule::class.java)!!.eventDispatcher
65
65
  }
@@ -73,12 +73,12 @@ class ModalContentLayout(context: Context?) : ReactViewGroup(context), RootView{
73
73
  return this.context as ReactContext
74
74
  }
75
75
 
76
- override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
76
+ override fun onInterceptTouchEvent(event: MotionEvent?): Boolean {
77
77
  mJSTouchDispatcher.handleTouchEvent(event, getEventDispatcher())
78
78
  return super.onInterceptTouchEvent(event)
79
79
  }
80
80
 
81
- override fun onTouchEvent(event: MotionEvent): Boolean {
81
+ override fun onTouchEvent(event: MotionEvent?): Boolean {
82
82
  mJSTouchDispatcher.handleTouchEvent(event, getEventDispatcher())
83
83
  super.onTouchEvent(event)
84
84
  return true
@@ -4,11 +4,13 @@ interface ApplicationProps {
4
4
  }
5
5
  export declare const Application: {
6
6
  new (props: ApplicationProps): {
7
- render(): React.JSX.Element;
8
- context: unknown;
7
+ render(): JSX.Element;
8
+ context: any;
9
9
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ApplicationProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
10
10
  forceUpdate(callback?: (() => void) | undefined): void;
11
- readonly props: Readonly<ApplicationProps>;
11
+ readonly props: Readonly<ApplicationProps> & Readonly<{
12
+ children?: React.ReactNode;
13
+ }>;
12
14
  state: Readonly<{}>;
13
15
  refs: {
14
16
  [key: string]: React.ReactInstance;
@@ -26,6 +28,6 @@ export declare const Application: {
26
28
  componentWillUpdate?(nextProps: Readonly<ApplicationProps>, nextState: Readonly<{}>, nextContext: any): void;
27
29
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ApplicationProps>, nextState: Readonly<{}>, nextContext: any): void;
28
30
  };
29
- contextType?: React.Context<any> | undefined;
31
+ contextType?: React.Context<any>;
30
32
  };
31
33
  export {};
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const BottomTabs: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element[];
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element[];
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const BottomTabs: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element[];
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element[];
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const BottomTabs: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -4,12 +4,14 @@ export declare const ComponentScreen: {
4
4
  new (props: ComponentProps): {
5
5
  componentDidMount(): void;
6
6
  isVisible(): boolean;
7
- renderTabBar(): React.JSX.Element | null;
8
- render(): React.JSX.Element;
9
- context: unknown;
7
+ renderTabBar(): JSX.Element | null;
8
+ render(): JSX.Element;
9
+ context: any;
10
10
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
11
11
  forceUpdate(callback?: (() => void) | undefined): void;
12
- readonly props: Readonly<ComponentProps>;
12
+ readonly props: Readonly<ComponentProps> & Readonly<{
13
+ children?: React.ReactNode;
14
+ }>;
13
15
  state: Readonly<{}>;
14
16
  refs: {
15
17
  [key: string]: React.ReactInstance;
@@ -26,5 +28,5 @@ export declare const ComponentScreen: {
26
28
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
27
29
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
28
30
  };
29
- contextType?: React.Context<any> | undefined;
31
+ contextType?: React.Context<any>;
30
32
  };
@@ -34,9 +34,7 @@ exports.ComponentScreen = (0, connect_1.connect)(class extends react_1.Component
34
34
  return null;
35
35
  const buttons = bottomTabs.children.map((child, i) => {
36
36
  const bottomTabOptions = child.resolveOptions().bottomTab;
37
- const icon = bottomTabs.selectedIndex === i
38
- ? bottomTabOptions?.selectedIcon
39
- : bottomTabOptions?.icon;
37
+ const icon = bottomTabs.selectedIndex === i ? bottomTabOptions?.selectedIcon : bottomTabOptions?.icon;
40
38
  const iconURI = isURISource(icon) ? icon.uri : undefined;
41
39
  return (react_1.default.createElement(react_native_1.View, { key: `tab-${i}` },
42
40
  react_1.default.createElement(react_native_1.TouchableOpacity, { style: { padding: 10 }, testID: bottomTabOptions?.testID, onPress: () => {
@@ -48,15 +46,10 @@ exports.ComponentScreen = (0, connect_1.connect)(class extends react_1.Component
48
46
  } },
49
47
  react_1.default.createElement(react_native_1.View, { style: { justifyContent: 'center', alignItems: 'center' } },
50
48
  react_1.default.createElement(react_native_1.Text, null, bottomTabOptions?.badge),
51
- iconURI && (react_1.default.createElement(react_native_1.Image, { style: { width: 18, height: 18, marginBottom: 5 }, source: { uri: iconURI } })),
49
+ iconURI && react_1.default.createElement(react_native_1.Image, { style: { width: 18, height: 18, marginBottom: 5 }, source: { uri: iconURI } }),
52
50
  react_1.default.createElement(react_native_1.Text, { style: { fontSize: 12 } }, bottomTabOptions?.text || '')))));
53
51
  });
54
- return (react_1.default.createElement(react_native_1.View, { testID: bottomTabsOptions?.testID, style: {
55
- flexDirection: 'row',
56
- justifyContent: 'center',
57
- width: '100%',
58
- backgroundColor: '#F0F2F5',
59
- } }, buttons));
52
+ return (react_1.default.createElement(react_native_1.View, { testID: bottomTabsOptions?.testID, style: { flexDirection: 'row', justifyContent: 'center', width: '100%', backgroundColor: '#F0F2F5' } }, buttons));
60
53
  }
61
54
  render() {
62
55
  const Component = react_native_navigation_1.Navigation.mock.store.getWrappedComponent(this.props.layoutNode.data.name);
@@ -1,13 +1,15 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const LayoutComponent: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
6
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
7
- context: unknown;
7
+ context: any;
8
8
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
9
9
  forceUpdate(callback?: (() => void) | undefined): void;
10
- readonly props: Readonly<ComponentProps>;
10
+ readonly props: Readonly<ComponentProps> & Readonly<{
11
+ children?: React.ReactNode;
12
+ }>;
11
13
  state: Readonly<{}>;
12
14
  refs: {
13
15
  [key: string]: React.ReactInstance;
@@ -24,13 +26,15 @@ export declare const LayoutComponent: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
29
31
  componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
30
- context: unknown;
32
+ context: any;
31
33
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
32
34
  forceUpdate(callback?: (() => void) | undefined): void;
33
- readonly props: Readonly<ComponentProps>;
35
+ readonly props: Readonly<ComponentProps> & Readonly<{
36
+ children?: React.ReactNode;
37
+ }>;
34
38
  state: Readonly<{}>;
35
39
  refs: {
36
40
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const LayoutComponent: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Modals: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Modals: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Modals: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -5,15 +5,17 @@ interface ButtonProps {
5
5
  componentId: string;
6
6
  }
7
7
  export declare const NavigationButton: {
8
- new (props: ButtonProps): {
8
+ new (props: Readonly<ButtonProps>): {
9
9
  ref: undefined;
10
- render(): React.JSX.Element;
11
- renderButtonComponent(): React.JSX.Element;
10
+ render(): JSX.Element;
11
+ renderButtonComponent(): JSX.Element;
12
12
  invokeOnClick(stateNode: any): void;
13
- context: unknown;
13
+ context: any;
14
14
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ButtonProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
15
15
  forceUpdate(callback?: (() => void) | undefined): void;
16
- readonly props: Readonly<ButtonProps>;
16
+ readonly props: Readonly<ButtonProps> & Readonly<{
17
+ children?: React.ReactNode;
18
+ }>;
17
19
  state: Readonly<{}>;
18
20
  refs: {
19
21
  [key: string]: React.ReactInstance;
@@ -31,15 +33,17 @@ export declare const NavigationButton: {
31
33
  componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
32
34
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
33
35
  };
34
- new (props: ButtonProps, context: any): {
36
+ new (props: ButtonProps, context?: any): {
35
37
  ref: undefined;
36
- render(): React.JSX.Element;
37
- renderButtonComponent(): React.JSX.Element;
38
+ render(): JSX.Element;
39
+ renderButtonComponent(): JSX.Element;
38
40
  invokeOnClick(stateNode: any): void;
39
- context: unknown;
41
+ context: any;
40
42
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ButtonProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
41
43
  forceUpdate(callback?: (() => void) | undefined): void;
42
- readonly props: Readonly<ButtonProps>;
44
+ readonly props: Readonly<ButtonProps> & Readonly<{
45
+ children?: React.ReactNode;
46
+ }>;
43
47
  state: Readonly<{}>;
44
48
  refs: {
45
49
  [key: string]: React.ReactInstance;
@@ -57,6 +61,6 @@ export declare const NavigationButton: {
57
61
  componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
58
62
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ButtonProps>, nextState: Readonly<{}>, nextContext: any): void;
59
63
  };
60
- contextType?: React.Context<any> | undefined;
64
+ contextType?: React.Context<any>;
61
65
  };
62
66
  export {};
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Overlays: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element;
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element;
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Overlays: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element;
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element;
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Overlays: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -1,12 +1,14 @@
1
1
  import React from 'react';
2
2
  import { ComponentProps } from '../ComponentProps';
3
3
  export declare const Stack: {
4
- new (props: ComponentProps): {
5
- render(): React.JSX.Element[];
6
- context: unknown;
4
+ new (props: Readonly<ComponentProps>): {
5
+ render(): JSX.Element[];
6
+ context: any;
7
7
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
8
8
  forceUpdate(callback?: (() => void) | undefined): void;
9
- readonly props: Readonly<ComponentProps>;
9
+ readonly props: Readonly<ComponentProps> & Readonly<{
10
+ children?: React.ReactNode;
11
+ }>;
10
12
  state: Readonly<{}>;
11
13
  refs: {
12
14
  [key: string]: React.ReactInstance;
@@ -24,12 +26,14 @@ export declare const Stack: {
24
26
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
25
27
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
26
28
  };
27
- new (props: ComponentProps, context: any): {
28
- render(): React.JSX.Element[];
29
- context: unknown;
29
+ new (props: ComponentProps, context?: any): {
30
+ render(): JSX.Element[];
31
+ context: any;
30
32
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<ComponentProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
31
33
  forceUpdate(callback?: (() => void) | undefined): void;
32
- readonly props: Readonly<ComponentProps>;
34
+ readonly props: Readonly<ComponentProps> & Readonly<{
35
+ children?: React.ReactNode;
36
+ }>;
33
37
  state: Readonly<{}>;
34
38
  refs: {
35
39
  [key: string]: React.ReactInstance;
@@ -47,5 +51,5 @@ export declare const Stack: {
47
51
  componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
48
52
  UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps>, nextState: Readonly<{}>, nextContext: any): void;
49
53
  };
50
- contextType?: React.Context<any> | undefined;
54
+ contextType?: React.Context<any>;
51
55
  };
@@ -8,15 +8,17 @@ export interface TopBarProps {
8
8
  }
9
9
  export declare const TopBar: {
10
10
  new (props: TopBarProps): {
11
- render(): React.JSX.Element | null;
11
+ render(): JSX.Element | null;
12
12
  shouldRenderBackButton(layoutNode: ParentNode): boolean;
13
- renderButtons(buttons?: OptionsTopBarButton[]): React.JSX.Element[];
14
- renderBackButton(): React.JSX.Element;
15
- renderComponent(id: string, name: string, testID?: string): React.JSX.Element;
16
- context: unknown;
13
+ renderButtons(buttons?: OptionsTopBarButton[]): JSX.Element[];
14
+ renderBackButton(): JSX.Element;
15
+ renderComponent(id: string, name: string, testID?: string): JSX.Element;
16
+ context: any;
17
17
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<TopBarProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
18
18
  forceUpdate(callback?: (() => void) | undefined): void;
19
- readonly props: Readonly<TopBarProps>;
19
+ readonly props: Readonly<TopBarProps> & Readonly<{
20
+ children?: React.ReactNode;
21
+ }>;
20
22
  state: Readonly<{}>;
21
23
  refs: {
22
24
  [key: string]: React.ReactInstance;
@@ -34,5 +36,5 @@ export declare const TopBar: {
34
36
  componentWillUpdate?(nextProps: Readonly<TopBarProps>, nextState: Readonly<{}>, nextContext: any): void;
35
37
  UNSAFE_componentWillUpdate?(nextProps: Readonly<TopBarProps>, nextState: Readonly<{}>, nextContext: any): void;
36
38
  };
37
- contextType?: React.Context<any> | undefined;
39
+ contextType?: React.Context<any>;
38
40
  };
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connect = void 0;
3
+ exports.connect = connect;
4
4
  const remx_1 = require("remx");
5
5
  function connect(component) {
6
6
  // @ts-ignore
7
7
  return (0, remx_1.connect)()(component);
8
8
  }
9
- exports.connect = connect;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mockNativeComponents = exports.ApplicationMock = void 0;
3
+ exports.ApplicationMock = void 0;
4
+ exports.mockNativeComponents = mockNativeComponents;
4
5
  const tslib_1 = require("tslib");
5
6
  exports.ApplicationMock = require('./Application').Application;
6
7
  tslib_1.__exportStar(require("./constants"), exports);
@@ -11,4 +12,3 @@ function mockNativeComponents() {
11
12
  const { Navigation } = require('react-native-navigation');
12
13
  Navigation.mockNativeComponents(new NativeCommandsSender(), new NativeEventsReceiver(), new AppRegistryService());
13
14
  }
14
- exports.mockNativeComponents = mockNativeComponents;
@@ -8,7 +8,7 @@ class NativeEventsReceiver {
8
8
  try {
9
9
  this.emitter = new react_native_1.NativeEventEmitter(react_native_1.NativeModules.RNNEventEmitter);
10
10
  }
11
- catch {
11
+ catch (e) {
12
12
  this.emitter = {
13
13
  addListener: () => {
14
14
  return {
@@ -8,7 +8,7 @@ interface GestureResponderEventWithForce extends NativeSyntheticEvent<NativeTouc
8
8
  }
9
9
  export interface Props {
10
10
  children?: React.ReactNode;
11
- touchableComponent?: typeof TouchableHighlight | typeof TouchableOpacity | TouchableNativeFeedback | TouchableWithoutFeedback | React.ReactNode;
11
+ touchableComponent?: TouchableHighlight | TouchableOpacity | TouchableNativeFeedback | TouchableWithoutFeedback | React.ReactNode;
12
12
  onPress?: () => void;
13
13
  onPressIn?: (payload: {
14
14
  reactTag: number | null;
@@ -38,6 +38,6 @@ export declare class TouchablePreview extends React.PureComponent<Props> {
38
38
  onTouchStart: (event: GestureResponderEvent) => void;
39
39
  onTouchMove: (event: GestureResponderEventWithForce) => void;
40
40
  onTouchEnd: () => void;
41
- render(): React.JSX.Element;
41
+ render(): JSX.Element;
42
42
  }
43
43
  export {};
@@ -13,4 +13,4 @@ var LayoutType;
13
13
  LayoutType["TopTabs"] = "TopTabs";
14
14
  LayoutType["ExternalComponent"] = "ExternalComponent";
15
15
  LayoutType["SplitView"] = "SplitView";
16
- })(LayoutType = exports.LayoutType || (exports.LayoutType = {}));
16
+ })(LayoutType || (exports.LayoutType = LayoutType = {}));
@@ -15,6 +15,6 @@ export declare class Modal extends React.Component<RNNModalProps> {
15
15
  animationType: string;
16
16
  };
17
17
  constructor(props: RNNModalProps);
18
- render(): React.JSX.Element | null;
18
+ render(): JSX.Element | null;
19
19
  private proccessProps;
20
20
  }
@@ -19,4 +19,4 @@ var CommandName;
19
19
  CommandName["DismissOverlay"] = "dismissOverlay";
20
20
  CommandName["DismissAllOverlays"] = "dismissAllOverlays";
21
21
  CommandName["GetLaunchArgs"] = "getLaunchArgs";
22
- })(CommandName = exports.CommandName || (exports.CommandName = {}));
22
+ })(CommandName || (exports.CommandName = CommandName = {}));
@@ -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 || (exports.OptionsModalPresentationStyle = {}));
14
+ })(OptionsModalPresentationStyle || (exports.OptionsModalPresentationStyle = 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 || (exports.OptionsModalTransitionStyle = {}));
21
+ })(OptionsModalTransitionStyle || (exports.OptionsModalTransitionStyle = OptionsModalTransitionStyle = {}));
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare module 'react-lifecycles-compat' {
3
2
  import * as React from 'react';
4
3
  function polyfill(component: React.ComponentClass<any>): void;
@@ -1,7 +1,6 @@
1
1
  #import "BottomTabsBasePresenter.h"
2
2
  #import "RNNBottomTabsController.h"
3
3
  #import "UIImage+utils.h"
4
- #import "RNNConvert.h"
5
4
 
6
5
  @implementation BottomTabsBasePresenter
7
6
 
@@ -30,7 +29,7 @@
30
29
  [self applyBackgroundColor:[withDefault.bottomTabs.backgroundColor withDefault:nil]
31
30
  translucent:[withDefault.bottomTabs.translucent withDefault:NO]];
32
31
  [bottomTabs setTabBarHideShadow:[withDefault.bottomTabs.hideShadow withDefault:NO]];
33
- [bottomTabs setTabBarStyle:[RNNConvert UIBarStyle:[withDefault.bottomTabs.barStyle
32
+ [bottomTabs setTabBarStyle:[RCTConvert UIBarStyle:[withDefault.bottomTabs.barStyle
34
33
  withDefault:@"default"]]];
35
34
  [self applyTabBarBorder:withDefault.bottomTabs];
36
35
  [self applyTabBarShadow:withDefault.bottomTabs.shadow];
@@ -61,7 +60,7 @@
61
60
  }
62
61
 
63
62
  if (mergeOptions.bottomTabs.barStyle.hasValue) {
64
- [bottomTabs setTabBarStyle:[RNNConvert UIBarStyle:mergeOptions.bottomTabs.barStyle.get]];
63
+ [bottomTabs setTabBarStyle:[RCTConvert UIBarStyle:mergeOptions.bottomTabs.barStyle.get]];
65
64
  }
66
65
 
67
66
  if (mergeOptions.bottomTabs.translucent.hasValue) {
@@ -2,7 +2,8 @@
2
2
  #import <ReactNativeNavigation/ReactNativeNavigation.h>
3
3
 
4
4
  #if RCT_NEW_ARCH_ENABLED
5
-
5
+ #import "RCTAppSetupUtils.h"
6
+ #import "RCTLegacyInteropComponents.h"
6
7
  #import <React/CoreModulesPlugins.h>
7
8
  #import <React/RCTCxxBridgeDelegate.h>
8
9
  #import <React/RCTLegacyViewManagerInteropComponentView.h>
@@ -7,7 +7,4 @@
7
7
 
8
8
  + (UIModalTransitionStyle)UIModalTransitionStyle:(id)json;
9
9
 
10
- + (UIBarStyle)UIBarStyle:(id)json;
11
-
12
-
13
10
  @end
@@ -32,13 +32,4 @@ RCT_ENUM_CONVERTER(UIModalPresentationStyle, (@{
32
32
  }),
33
33
  UIModalPresentationFullScreen, integerValue)
34
34
 
35
- RCT_ENUM_CONVERTER(
36
- UIBarStyle,
37
- (@{
38
- @"default" : @(UIBarStyleDefault),
39
- @"black" : @(UIBarStyleBlack)
40
- }),
41
- UIBarStyleDefault,
42
- integerValue)
43
-
44
35
  @end
@@ -5,7 +5,6 @@
5
5
  #import "RNNStackController.h"
6
6
  #import "TopBarPresenterCreator.h"
7
7
  #import "UINavigationController+RNNOptions.h"
8
- #import "RNNConvert.h"
9
8
 
10
9
  @interface RNNStackPresenter () {
11
10
  RNNReactComponentRegistry *_componentRegistry;
@@ -69,7 +68,7 @@
69
68
  stack.interactivePopGestureRecognizer.delegate = _interactivePopGestureDelegate;
70
69
 
71
70
  [stack
72
- setBarStyle:[RNNConvert UIBarStyle:[withDefault.topBar.barStyle withDefault:@"default"]]];
71
+ setBarStyle:[RCTConvert UIBarStyle:[withDefault.topBar.barStyle withDefault:@"default"]]];
73
72
  [stack setRootBackgroundImage:[withDefault.rootBackgroundImage withDefault:nil]];
74
73
  [stack setNavigationBarTestId:[withDefault.topBar.testID withDefault:nil]];
75
74
  [stack setNavigationBarVisible:[withDefault.topBar.visible withDefault:YES]
@@ -127,7 +126,7 @@
127
126
  }
128
127
 
129
128
  if (mergeOptions.topBar.barStyle.hasValue) {
130
- [stack setBarStyle:[RNNConvert UIBarStyle:mergeOptions.topBar.barStyle.get]];
129
+ [stack setBarStyle:[RCTConvert UIBarStyle:mergeOptions.topBar.barStyle.get]];
131
130
  }
132
131
 
133
132
  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 {
27
- this.emitter = {
26
+ } catch (e) {
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
- | typeof TouchableHighlight
26
- | typeof TouchableOpacity
25
+ | TouchableHighlight
26
+ | 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 React.Component);
124
+ : (touchableComponent as typeof 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-navigation",
3
- "version": "7.42.0",
3
+ "version": "7.99.1-testbla",
4
4
  "description": "React Native Navigation - truly native navigation for iOS and Android",
5
5
  "license": "MIT",
6
6
  "nativePackage": true,
@@ -64,43 +64,40 @@
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": "^3.0.4",
67
+ "react-lifecycles-compat": "2.0.0",
68
68
  "tslib": "1.9.3"
69
69
  },
70
70
  "devDependencies": {
71
- "@babel/core": "^7.25.2",
71
+ "@babel/core": "7.22.9",
72
72
  "@babel/plugin-proposal-export-default-from": "7.10.1",
73
73
  "@babel/plugin-proposal-export-namespace-from": "7.10.1",
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",
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",
87
84
  "@testing-library/jest-native": "^5.4.2",
88
- "@testing-library/react-native": "^13.0.1",
89
- "@types/hoist-non-react-statics": "^3.3.6",
85
+ "@testing-library/react-native": "^12.0.1",
86
+ "@types/hoist-non-react-statics": "^3.0.1",
90
87
  "@types/jasmine": "3.5.10",
91
88
  "@types/jest": "27.0.2",
92
89
  "@types/lodash": "^4.14.149",
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",
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",
97
95
  "babel-jest": "^27.0.0",
98
96
  "clang-format": "^1.4.0",
99
- "detox": "20.32.0",
97
+ "detox": "20.19.5",
100
98
  "detox-testing-library-rnn-adapter": "^2.0.3",
101
- "eslint": "^8.19.0",
99
+ "eslint": "7.32.0",
102
100
  "eslint-config-prettier": "6.11.0",
103
- "eslint-formatter-codeframe": "^7.32.1",
104
101
  "eslint-plugin-prettier": "3.1.4",
105
102
  "github-release-notes": "https://github.com/yogevbd/github-release-notes/tarball/e601b3dba72dcd6cba323c1286ea6dd0c0110b58",
106
103
  "husky": "4.2.5",
@@ -110,22 +107,22 @@
110
107
  "metro-react-native-babel-preset": "^0.76.2",
111
108
  "pixelmatch": "^5.2.1",
112
109
  "pngjs": "^6.0.0",
113
- "prettier": "2.8.8",
114
- "react": "18.3.1",
115
- "react-native": "0.76.6",
110
+ "prettier": "2.1.2",
111
+ "react": "18.2.0",
112
+ "react-native": "0.73.3",
116
113
  "react-native-fast-image": "^8.6.3",
117
- "react-native-gesture-handler": "^2.22.1",
118
- "react-native-reanimated": "3.16.7",
114
+ "react-native-gesture-handler": "2.14.1",
115
+ "react-native-reanimated": "3.16.1",
119
116
  "react-native-ui-lib": "7.3.6",
120
117
  "react-redux": "5.x.x",
121
- "react-test-renderer": "18.3.1",
118
+ "react-test-renderer": "18.2.0",
122
119
  "redux": "3.x.x",
123
120
  "remx": "3.x.x",
124
121
  "semver": "5.x.x",
125
122
  "shell-utils": "1.x.x",
126
123
  "ts-mockito": "^2.3.1",
127
124
  "typedoc": "0.x.x",
128
- "typescript": "5.0.4"
125
+ "typescript": "5.5.4"
129
126
  },
130
127
  "husky": {
131
128
  "hooks": {
@@ -171,7 +168,7 @@
171
168
  "emulator": {
172
169
  "type": "android.emulator",
173
170
  "device": {
174
- "avdName": "Pixel_3a_API_34"
171
+ "avdName": "Pixel_API_28"
175
172
  }
176
173
  }
177
174
  },
@@ -191,10 +188,7 @@
191
188
  "type": "android.apk",
192
189
  "binaryPath": "playground/android/app/build/outputs/apk/debug/app-debug.apk",
193
190
  "start": "npm start -- --e2e",
194
- "build": "cd playground/android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug",
195
- "reversePorts": [
196
- 8081
197
- ]
191
+ "build": "cd playground/android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug"
198
192
  },
199
193
  "android.release": {
200
194
  "type": "android.apk",