react-native-navigation 8.6.2 → 8.6.3

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 (24) hide show
  1. package/android/build.gradle +10 -10
  2. package/android/src/androidTest/assets/index.android.bundle +535 -0
  3. package/android/src/androidTest/java/com/reactnativenavigation/TestApplication.kt +0 -1
  4. package/android/src/androidTest/java/com/reactnativenavigation/mocks/SimpleViewController.java +20 -11
  5. package/android/src/androidTest/js/index.js +14 -0
  6. package/android/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleAndButtonsContainer.kt +2 -1
  7. package/android/src/main/java/com/reactnativenavigation/views/stack/topbar/titlebar/TitleAndButtonsMeasurer.kt +6 -2
  8. package/android/src/test/resources/robolectric.properties +3 -0
  9. package/autolink/fixtures/rn79/build.gradle.template +4 -4
  10. package/ios/RNNAppDelegate.mm +1 -0
  11. package/ios/RNNReactTitleView.mm +3 -1
  12. package/ios/ScreenAnimationController.mm +37 -13
  13. package/lib/module/commands/OptionsCrawler.js +1 -1
  14. package/lib/module/commands/OptionsCrawler.js.map +1 -1
  15. package/lib/typescript/Mock/Components/LayoutComponent.d.ts.map +1 -1
  16. package/lib/typescript/Mock/Layouts/SideMenu.d.ts.map +1 -1
  17. package/lib/typescript/Mock/actions/layoutActions.d.ts.map +1 -1
  18. package/lib/typescript/src/adapters/NativeCommandsSender.d.ts +6 -6
  19. package/lib/typescript/src/adapters/NativeRNNTurboEventEmitter.d.ts.map +1 -1
  20. package/lib/typescript/src/adapters/TouchablePreview.d.ts.map +1 -1
  21. package/lib/typescript/src/types.d.ts +0 -1
  22. package/lib/typescript/src/types.d.ts.map +1 -1
  23. package/package.json +14 -14
  24. package/src/commands/OptionsCrawler.ts +1 -1
@@ -9,7 +9,6 @@ import com.reactnativenavigation.react.NavigationReactNativeHost
9
9
 
10
10
  class TestApplication : NavigationApplication() {
11
11
 
12
-
13
12
  override val reactNativeHost: ReactNativeHost
14
13
  get() = object : NavigationReactNativeHost(this) {
15
14
  override fun getJSMainModuleName(): String {
@@ -5,11 +5,12 @@ import static com.reactnativenavigation.utils.ObjectUtils.perform;
5
5
  import android.app.Activity;
6
6
  import android.content.Context;
7
7
  import android.view.MotionEvent;
8
+ import android.view.ViewGroup;
9
+ import android.widget.FrameLayout;
8
10
 
9
11
  import androidx.annotation.NonNull;
10
12
 
11
13
  import com.reactnativenavigation.options.Options;
12
- import com.reactnativenavigation.react.ReactView;
13
14
  import com.reactnativenavigation.viewcontrollers.child.ChildController;
14
15
  import com.reactnativenavigation.viewcontrollers.child.ChildControllersRegistry;
15
16
  import com.reactnativenavigation.viewcontrollers.component.ComponentPresenterBase;
@@ -24,7 +25,8 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
24
25
  this(activity, childRegistry, id, new Presenter(activity, new Options()), options);
25
26
  }
26
27
 
27
- public SimpleViewController(Activity activity, ChildControllersRegistry childRegistry, String id, Presenter presenter, Options options) {
28
+ public SimpleViewController(Activity activity, ChildControllersRegistry childRegistry, String id,
29
+ Presenter presenter, Options options) {
28
30
  super(activity, childRegistry, id, presenter, options);
29
31
  }
30
32
 
@@ -40,7 +42,8 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
40
42
 
41
43
  @Override
42
44
  public void destroy() {
43
- if (!isDestroyed()) performOnParentController(parent -> parent.onChildDestroyed(this));
45
+ if (!isDestroyed())
46
+ performOnParentController(parent -> parent.onChildDestroyed(this));
44
47
  super.destroy();
45
48
  }
46
49
 
@@ -58,7 +61,8 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
58
61
 
59
62
  @Override
60
63
  public void applyBottomInset() {
61
- if (view != null) presenter.applyBottomInset(view, getBottomInset());
64
+ if (view != null)
65
+ presenter.applyBottomInset(view, getBottomInset());
62
66
  }
63
67
 
64
68
  @Override
@@ -66,10 +70,15 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
66
70
  return null;
67
71
  }
68
72
 
69
- public static class SimpleView extends ReactView implements ReactComponent {
73
+ /**
74
+ * A simple mock view that implements ReactComponent without actually using
75
+ * React Native.
76
+ * This avoids triggering React surface rendering in instrumented tests.
77
+ */
78
+ public static class SimpleView extends FrameLayout implements ReactComponent {
70
79
 
71
80
  public SimpleView(@NonNull Context context) {
72
- super(context, "compId", "compName");
81
+ super(context);
73
82
  }
74
83
 
75
84
  @Override
@@ -79,22 +88,22 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
79
88
 
80
89
  @Override
81
90
  public boolean isReady() {
82
- return false;
91
+ return true;
83
92
  }
84
93
 
85
94
  @Override
86
- public ReactView asView() {
95
+ public ViewGroup asView() {
87
96
  return this;
88
97
  }
89
98
 
90
99
  @Override
91
100
  public void destroy() {
92
-
101
+ // No-op for mock
93
102
  }
94
103
 
95
104
  @Override
96
105
  public void sendOnNavigationButtonPressed(String buttonId) {
97
-
106
+ // No-op for mock
98
107
  }
99
108
 
100
109
  @Override
@@ -104,7 +113,7 @@ public class SimpleViewController extends ChildController<SimpleViewController.S
104
113
 
105
114
  @Override
106
115
  public void dispatchTouchEventToJs(MotionEvent event) {
107
-
116
+ // No-op for mock
108
117
  }
109
118
  }
110
119
  }
@@ -0,0 +1,14 @@
1
+
2
+ /**
3
+ * Minimal entry point for Android instrumented tests
4
+ * This registers a no-op component to satisfy React Native's initialization.
5
+ * Used only in Android instrumented application class.
6
+ * Regenerate bundle when upgrading React Native:
7
+ * npx react-native bundle --platform android --dev false \
8
+ * --entry-file android/src/androidTest/js/index.js \
9
+ * --bundle-output android/src/androidTest/assets/index.android.bundle \
10
+ * --minify true
11
+ */
12
+ import { AppRegistry } from 'react-native';
13
+ AppRegistry.registerComponent('RNNTest', () => () => null);
14
+
@@ -155,8 +155,9 @@ class TitleAndButtonsContainer(context: Context) : ViewGroup(context) {
155
155
  val rightBarWidth = rightButtonBar.measuredWidth
156
156
  val leftBarWidth = leftButtonBar.measuredWidth
157
157
  val isCenter = titleComponentAlignment == Alignment.Center
158
+ val isFill = titleComponentAlignment == Alignment.Fill
158
159
  val titleHeightMeasureSpec = MeasureSpec.makeMeasureSpec(containerHeight, MeasureSpec.AT_MOST)
159
- val titleWidthMeasureSpec = makeTitleAtMostWidthMeasureSpec(containerWidth, rightBarWidth, leftBarWidth, isCenter)
160
+ val titleWidthMeasureSpec = makeTitleAtMostWidthMeasureSpec(containerWidth, rightBarWidth, leftBarWidth, isCenter, isFill)
160
161
  if (titleComponent is TitleBarReactView) {
161
162
  titleComponent.centered = isCenter
162
163
  }
@@ -15,11 +15,15 @@ typealias TitleRight = Int
15
15
  typealias TitleTop = Int
16
16
  typealias TitleBottom = Int
17
17
 
18
- fun makeTitleAtMostWidthMeasureSpec(containerWidth: Int, rightBarWidth: Int, leftBarWidth: Int, isCenter: Boolean): Int {
18
+ fun makeTitleAtMostWidthMeasureSpec(containerWidth: Int, rightBarWidth: Int, leftBarWidth: Int, isCenter: Boolean, isFill: Boolean = false): Int {
19
19
  return if (isCenter) {
20
20
  View.MeasureSpec.makeMeasureSpec(containerWidth, View.MeasureSpec.AT_MOST)
21
21
  } else {
22
- View.MeasureSpec.makeMeasureSpec(containerWidth - rightBarWidth - leftBarWidth - 2 * DEFAULT_LEFT_MARGIN_PX, View.MeasureSpec.AT_MOST)
22
+ val availableWidth = containerWidth - rightBarWidth - leftBarWidth - 2 * DEFAULT_LEFT_MARGIN_PX
23
+ View.MeasureSpec.makeMeasureSpec(
24
+ availableWidth,
25
+ if (isFill) View.MeasureSpec.EXACTLY else View.MeasureSpec.AT_MOST
26
+ )
23
27
  }
24
28
  }
25
29
 
@@ -0,0 +1,3 @@
1
+ # Android SDK 36 requires Java 21, so we force SDK 35 for tests (works with Java 17)
2
+ sdk=35
3
+
@@ -1,11 +1,11 @@
1
1
  buildscript {
2
2
  ext {
3
- buildToolsVersion = "35.0.0"
3
+ buildToolsVersion = "36.0.0"
4
4
  minSdkVersion = 24
5
- compileSdkVersion = 35
6
- targetSdkVersion = 35
5
+ compileSdkVersion = 36
6
+ targetSdkVersion = 36
7
7
  ndkVersion = "27.1.12297006"
8
- kotlinVersion = "2.0.21"
8
+ kotlinVersion = "2.1.20"
9
9
  }
10
10
  repositories {
11
11
  google()
@@ -70,6 +70,7 @@ didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
70
70
  self.reactNativeDelegate.dependencyProvider = [RCTAppDependencyProvider new];
71
71
 
72
72
  RCTAppSetupPrepareApp(application, YES);
73
+ RCTEnableTurboModuleInterop(YES);
73
74
  RCTEnableTurboModuleInteropBridgeProxy(YES);
74
75
 
75
76
  self.reactNativeFactory.rootViewFactory.reactHost = [self.reactNativeFactory.rootViewFactory createReactHost:launchOptions];
@@ -2,6 +2,7 @@
2
2
 
3
3
  @implementation RNNReactTitleView {
4
4
  BOOL _fillParent;
5
+ CGFloat _expectedHeight;
5
6
  }
6
7
 
7
8
  - (NSString *)componentType {
@@ -10,7 +11,7 @@
10
11
 
11
12
  - (CGSize)intrinsicContentSize {
12
13
  if (_fillParent) {
13
- return UILayoutFittingExpandedSize;
14
+ return CGSizeMake(UILayoutFittingExpandedSize.width, _expectedHeight > 0 ? _expectedHeight : 44);
14
15
  } else {
15
16
  return [super intrinsicContentSize];
16
17
  }
@@ -19,6 +20,7 @@
19
20
  - (void)setAlignment:(NSString *)alignment inFrame:(CGRect)frame {
20
21
  if ([alignment isEqualToString:@"fill"]) {
21
22
  _fillParent = YES;
23
+ _expectedHeight = frame.size.height;
22
24
  self.translatesAutoresizingMaskIntoConstraints = NO;
23
25
  self.sizeFlexibility = RCTRootViewSizeFlexibilityNone;
24
26
  } else {
@@ -75,14 +75,29 @@
75
75
  }
76
76
 
77
77
  - (void)prepareTransitionContext:(id<UIViewControllerContextTransitioning>)transitionContext {
78
- UINavigationController *toViewController =
79
- [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
80
- toViewController.view.alpha = 0;
81
- UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
82
-
83
- [transitionContext.containerView addSubview:fromView];
84
- [transitionContext.containerView addSubview:toViewController.view];
85
- [toViewController prepareForTransition];
78
+ UIViewController *fromViewController =
79
+ [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
80
+ UIViewController *toViewController =
81
+ [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
82
+
83
+ UIView *fromView = [transitionContext viewForKey:UITransitionContextFromViewKey];
84
+ UIView *toView = [transitionContext viewForKey:UITransitionContextToViewKey];
85
+
86
+ BOOL isDismiss = (toView == nil);
87
+
88
+ if (isDismiss) {
89
+ if (fromView) {
90
+ [transitionContext.containerView addSubview:fromView];
91
+ }
92
+ } else {
93
+ toViewController.view.alpha = 0;
94
+ if (fromView) {
95
+ [transitionContext.containerView addSubview:fromView];
96
+ }
97
+ [transitionContext.containerView addSubview:toViewController.view];
98
+ }
99
+
100
+ [toViewController prepareForTransition];
86
101
  }
87
102
 
88
103
  - (NSArray *)createTransitionsFromVC:(UIViewController *)fromVC
@@ -121,13 +136,18 @@
121
136
 
122
137
  - (void)animateTransitions:(NSArray<id<DisplayLinkAnimatorDelegate>> *)animators
123
138
  andTransitioningContext:(id<UIViewControllerContextTransitioning>)transitionContext {
139
+ UIView *toView = [transitionContext viewForKey:UITransitionContextToViewKey];
140
+ BOOL isDismiss = (toView == nil);
141
+
124
142
  DisplayLinkAnimator *displayLinkAnimator = [[DisplayLinkAnimator alloc]
125
143
  initWithDisplayLinkAnimators:animators
126
144
  duration:[self transitionDuration:transitionContext]];
127
145
 
128
146
  [displayLinkAnimator setOnStart:^{
129
- [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey].view.alpha =
130
- 1.f;
147
+ UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
148
+ if (!isDismiss) {
149
+ toVC.view.alpha = 1.f;
150
+ }
131
151
  }];
132
152
 
133
153
  [displayLinkAnimator setCompletion:^{
@@ -170,9 +190,13 @@
170
190
  UIView *toView = [_transitionContext viewForKey:UITransitionContextToViewKey];
171
191
  UIView *fromView = [_transitionContext viewForKey:UITransitionContextFromViewKey];
172
192
  [_sharedElementAnimator animationEnded];
173
- toView.layer.transform = CATransform3DIdentity;
174
- fromView.layer.transform = CATransform3DIdentity;
175
- toView.alpha = 1.f;
193
+ if (toView) {
194
+ toView.layer.transform = CATransform3DIdentity;
195
+ toView.alpha = 1.f;
196
+ }
197
+ if (fromView) {
198
+ fromView.layer.transform = CATransform3DIdentity;
199
+ }
176
200
  _transitionContext = nil;
177
201
  _sharedElementAnimator = nil;
178
202
  }
@@ -64,7 +64,7 @@ export class OptionsCrawler {
64
64
  return isFunction(reactComponent.options) ? reactComponent.options({
65
65
  componentId: layout.id,
66
66
  ...layout.passProps
67
- } || {}) : reactComponent.options;
67
+ }) : reactComponent.options;
68
68
  }
69
69
  return {};
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"names":["merge","isFunction","LayoutType","OptionsCrawler","constructor","store","uniqueIdProvider","crawl","bind","api","topTabs","sideMenu","bottomTabs","stack","component","splitView","children","map","center","left","right","detail","master","applyComponentId","applyStaticOptions","id","generate","Component","isComponentWithOptions","options","undefined","layout","staticOptions","staticOptionsIfPossible","foundReactGenerator","getComponentClassForName","name","reactComponent","componentId","passProps"],"sourceRoot":"../../../src","sources":["commands/OptionsCrawler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["merge","isFunction","LayoutType","OptionsCrawler","constructor","store","uniqueIdProvider","crawl","bind","api","topTabs","sideMenu","bottomTabs","stack","component","splitView","children","map","center","left","right","detail","master","applyComponentId","applyStaticOptions","id","generate","Component","isComponentWithOptions","options","undefined","layout","staticOptions","staticOptionsIfPossible","foundReactGenerator","getComponentClassForName","name","reactComponent","componentId","passProps"],"sourceRoot":"../../../src","sources":["commands/OptionsCrawler.ts"],"mappings":";;AACA,OAAOA,KAAK,MAAM,cAAc;AAChC,OAAOC,UAAU,MAAM,mBAAmB;AAa1C,SAASC,UAAU,QAAQ,iBAAc;AAIzC,OAAO,MAAMC,cAAc,CAAC;EAC1BC,WAAWA,CAAiBC,KAAY,EAAkBC,gBAAkC,EAAE;IAAA,KAAlED,KAAY,GAAZA,KAAY;IAAA,KAAkBC,gBAAkC,GAAlCA,gBAAkC;IAC1F,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,CAACC,IAAI,CAAC,IAAI,CAAC;EACpC;EAEAD,KAAKA,CAACE,GAAiB,EAAQ;IAC7B,IAAI,CAACA,GAAG,EAAE;IACV,IAAIA,GAAG,CAACC,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,CAACD,GAAG,CAACC,OAAO,CAAC;IAC3B,CAAC,MAAM,IAAID,GAAG,CAACE,QAAQ,EAAE;MACvB,OAAO,IAAI,CAACA,QAAQ,CAACF,GAAG,CAACE,QAAQ,CAAC;IACpC,CAAC,MAAM,IAAIF,GAAG,CAACG,UAAU,EAAE;MACzB,OAAO,IAAI,CAACA,UAAU,CAACH,GAAG,CAACG,UAAU,CAAC;IACxC,CAAC,MAAM,IAAIH,GAAG,CAACI,KAAK,EAAE;MACpB,OAAO,IAAI,CAACA,KAAK,CAACJ,GAAG,CAACI,KAAK,CAAC;IAC9B,CAAC,MAAM,IAAIJ,GAAG,CAACK,SAAS,EAAE;MACxB,OAAO,IAAI,CAACA,SAAS,CAACL,GAAG,CAACK,SAAS,CAAC;IACtC,CAAC,MAAM,IAAIL,GAAG,CAACM,SAAS,EAAE;MACxB,OAAO,IAAI,CAACA,SAAS,CAACN,GAAG,CAACM,SAAS,CAAC;IACtC;EACF;EAEQL,OAAOA,CAACD,GAAkB,EAAQ;IACxCA,GAAG,CAACO,QAAQ,EAAEC,GAAG,CAAC,IAAI,CAACV,KAAK,CAAC;EAC/B;EAEQI,QAAQA,CAACA,QAAwB,EAAQ;IAC/C,IAAI,CAACJ,KAAK,CAACI,QAAQ,CAACO,MAAM,CAAC;IAC3B,IAAI,CAACX,KAAK,CAACI,QAAQ,CAACQ,IAAI,CAAC;IACzB,IAAI,CAACZ,KAAK,CAACI,QAAQ,CAACS,KAAK,CAAC;EAC5B;EAEQR,UAAUA,CAACA,UAA4B,EAAQ;IACrDA,UAAU,CAACI,QAAQ,EAAEC,GAAG,CAAC,IAAI,CAACV,KAAK,CAAC;EACtC;EAEQM,KAAKA,CAACA,KAAkB,EAAQ;IACtCA,KAAK,CAACG,QAAQ,EAAEC,GAAG,CAAC,IAAI,CAACV,KAAK,CAAC;EACjC;EAEQQ,SAASA,CAACA,SAA0B,EAAQ;IAClDA,SAAS,CAACM,MAAM,IAAI,IAAI,CAACd,KAAK,CAACQ,SAAS,CAACM,MAAM,CAAC;IAChDN,SAAS,CAACO,MAAM,IAAI,IAAI,CAACf,KAAK,CAACQ,SAAS,CAACO,MAAM,CAAC;EAClD;EAEQR,SAASA,CAACA,SAA0B,EAAQ;IAClD,IAAI,CAACS,gBAAgB,CAACT,SAAS,CAAC;IAChC,IAAI,CAACU,kBAAkB,CAACV,SAAS,CAAC;EACpC;EAEQS,gBAAgBA,CAACT,SAA0B,EAAQ;IACzDA,SAAS,CAACW,EAAE,GAAGX,SAAS,CAACW,EAAE,IAAI,IAAI,CAACnB,gBAAgB,CAACoB,QAAQ,CAACxB,UAAU,CAACyB,SAAS,CAAC;EACrF;EAEQC,sBAAsBA,CAACd,SAAc,EAAqC;IAChF,OAAQA,SAAS,CAA0Be,OAAO,KAAKC,SAAS;EAClE;EAEQN,kBAAkBA,CAACO,MAAuB,EAAE;IAClD,MAAMC,aAAa,GAAG,IAAI,CAACC,uBAAuB,CAACF,MAAM,CAAC;IAC1DA,MAAM,CAACF,OAAO,GAAG7B,KAAK,CAAC,CAAC,CAAC,EAAEgC,aAAa,EAAED,MAAM,CAACF,OAAO,CAAC;EAC3D;EAEQI,uBAAuBA,CAACF,MAAuB,EAAE;IACvD,MAAMG,mBAAmB,GAAG,IAAI,CAAC7B,KAAK,CAAC8B,wBAAwB,CAACJ,MAAM,CAACK,IAAK,CAAC;IAC7E,MAAMC,cAAc,GAAGH,mBAAmB,GAAGA,mBAAmB,CAAC,CAAC,GAAGJ,SAAS;IAC9E,IAAIO,cAAc,IAAI,IAAI,CAACT,sBAAsB,CAACS,cAAc,CAAC,EAAE;MACjE,OAAOpC,UAAU,CAACoC,cAAc,CAACR,OAAO,CAAC,GACrCQ,cAAc,CAACR,OAAO,CAAC;QAAES,WAAW,EAAEP,MAAM,CAACN,EAAE;QAAE,GAAGM,MAAM,CAACQ;MAAU,CAAC,CAAC,GACvEF,cAAc,CAACR,OAAO;IAC5B;IACA,OAAO,CAAC,CAAC;EACX;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutComponent.d.ts","sourceRoot":"","sources":["../../../../Mock/Components/LayoutComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,eAAO,MAAM,eAAe;;;iCAqBD,KAAK,aAAa,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;iCAAjC,KAAK,aAAa,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;CAO3D,CAAC"}
1
+ {"version":3,"file":"LayoutComponent.d.ts","sourceRoot":"","sources":["../../../../Mock/Components/LayoutComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKnD,eAAO,MAAM,eAAe;;;iCAqBD,KAAK,aAAa,KAAK,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;iCAAjC,KAAK,aAAa,KAAK,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;CAO3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SideMenu.d.ts","sourceRoot":"","sources":["../../../../Mock/Layouts/SideMenu.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU;IACtD,YAAY,EAAE,UAAU,CAAC;gBAEb,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;IAShD,YAAY,CAAC,QAAQ,EAAE,OAAO;IAM9B,YAAY,CAAC,OAAO,EAAE,OAAO;IAM7B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAelC,eAAe,mBAAyD;IACxE,aAAa,mBAAuD;IACpE,cAAc,mBAAwD;CACvE;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,UAAU;IAIhE,gBAAgB;CAGjB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;gBACpC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD;AACD,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD"}
1
+ {"version":3,"file":"SideMenu.d.ts","sourceRoot":"","sources":["../../../../Mock/Layouts/SideMenu.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,UAAU;IACtD,YAAY,EAAE,UAAU,CAAC;gBAEb,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;IAShD,YAAY,CAAC,QAAQ,EAAE,OAAO;IAM9B,YAAY,CAAC,OAAO,EAAE,OAAO;IAM7B;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAelC,eAAe,QAA8C,UAAU,CAAC;IACxE,aAAa,QAA4C,UAAU,CAAC;IACpE,cAAc,QAA6C,UAAU,CAAC;CACvE;AAED,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,UAAU;IAIhE,gBAAgB;CAGjB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;gBACpC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD;AACD,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,UAAU;CAGjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"layoutActions.d.ts","sourceRoot":"","sources":["../../../../Mock/actions/layoutActions.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,eAAO,MAAM,gBAAgB,eAAgB,UAAU,GAAG,SAAS,SAAS,MAAM,SAMjF,CAAC;AAEF,eAAO,MAAM,YAAY,aAAc,YAAY,SAGlD,CAAC;AAEF,eAAO,MAAM,aAAa,WAAY,YAAY,SAGjD,CAAC"}
1
+ {"version":3,"file":"layoutActions.d.ts","sourceRoot":"","sources":["../../../../Mock/actions/layoutActions.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,GAAG,SAAS,EAAE,OAAO,MAAM,SAMjF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,SAGlD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,QAAQ,YAAY,SAGjD,CAAC"}
@@ -46,15 +46,15 @@ export declare class NativeCommandsSender implements NativeCommandsModule {
46
46
  dismissAllOverlays(commandId: string): Promise<string>;
47
47
  getLaunchArgs(commandId: string): Promise<string[]>;
48
48
  getNavigationConstants(): Promise<{
49
- topBarHeight: number;
50
- statusBarHeight: number;
51
- bottomTabsHeight: number;
49
+ topBarHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
50
+ statusBarHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
51
+ bottomTabsHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
52
52
  backButtonId: string;
53
53
  }>;
54
54
  getNavigationConstantsSync(): {
55
- topBarHeight: number;
56
- statusBarHeight: number;
57
- bottomTabsHeight: number;
55
+ topBarHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
56
+ statusBarHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
57
+ bottomTabsHeight: import("react-native/Libraries/Types/CodegenTypes").Double;
58
58
  backButtonId: string;
59
59
  };
60
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NativeRNNTurboEventEmitter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/NativeRNNTurboEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;;AAMD,wBAA4C"}
1
+ {"version":3,"file":"NativeRNNTurboEventEmitter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/NativeRNNTurboEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,YAAY,EAAE,MAAM,cAAc,CAAC;AAE9E,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;wBAM8B,YAAY;AAA3C,wBAA4C"}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchablePreview.d.ts","sourceRoot":"","sources":["../../../../src/adapters/TouchablePreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAIL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAGtB,UAAU,yBAA0B,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,8BAA+B,SAAQ,oBAAoB,CAAC,yBAAyB,CAAC;CAAG;AAEnG,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,kBAAkB,CAAC,EACf,OAAO,kBAAkB,GACzB,OAAO,gBAAgB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,KAAK,CAAC,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9D,MAAM,CAAC,SAAS;;;;;;;;MAQd;IAEF,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,OAAO,UAAS;IAEvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,aAQL;IAEF,SAAS,oBAeP;IAEF,YAAY,UAAW,qBAAqB,UAG1C;IAEF,WAAW,UAAW,8BAA8B,UAclD;IAEF,UAAU,aAOR;IAEF,MAAM;CA4BP"}
1
+ {"version":3,"file":"TouchablePreview.d.ts","sourceRoot":"","sources":["../../../../src/adapters/TouchablePreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AACxC,OAAO,EAIL,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAGtB,UAAU,yBAA0B,SAAQ,gBAAgB;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf;AACD,UAAU,8BAA+B,SAAQ,oBAAoB,CAAC,yBAAyB,CAAC;CAAG;AAEnG,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,kBAAkB,CAAC,EACf,OAAO,kBAAkB,GACzB,OAAO,gBAAgB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,KAAK,CAAC,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IAC9D,MAAM,CAAC,SAAS;;;;;;;;MAQd;IAEF,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,OAAO,UAAS;IAEvB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,aAQL;IAEF,SAAS,oBAeP;IAEF,YAAY,GAAI,OAAO,qBAAqB,UAG1C;IAEF,WAAW,GAAI,OAAO,8BAA8B,UAclD;IAEF,UAAU,aAOR;IAEF,MAAM;CA4BP"}
@@ -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 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":";AAAA,OAAO,QAAQ,yBAAyB,CAAC;IACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;IAE/B,SAAgB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yBAAyB,CAAC;IACvC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;IAE/B,SAAgB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;CACtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-navigation",
3
- "version": "8.6.2",
3
+ "version": "8.6.3",
4
4
  "description": "React Native Navigation - truly native navigation for iOS and Android",
5
5
  "license": "MIT",
6
6
  "nativePackage": true,
@@ -88,15 +88,15 @@
88
88
  "@babel/preset-env": "^7.25.3",
89
89
  "@babel/runtime": "^7.25.0",
90
90
  "@babel/types": "7.25.0",
91
- "@react-native-community/cli": "19.1.1",
92
- "@react-native-community/cli-platform-android": "19.1.1",
93
- "@react-native-community/cli-platform-ios": "19.1.1",
91
+ "@react-native-community/cli": "20.0.0",
92
+ "@react-native-community/cli-platform-android": "20.0.0",
93
+ "@react-native-community/cli-platform-ios": "20.0.0",
94
94
  "@react-native-community/datetimepicker": "^8.2.0",
95
95
  "@react-native-community/netinfo": "^11.4.1",
96
- "@react-native/babel-preset": "0.80.2",
97
- "@react-native/eslint-config": "0.80.2",
98
- "@react-native/metro-config": "0.80.2",
99
- "@react-native/typescript-config": "0.80.2",
96
+ "@react-native/babel-preset": "0.82.1",
97
+ "@react-native/eslint-config": "0.82.1",
98
+ "@react-native/metro-config": "0.82.1",
99
+ "@react-native/typescript-config": "0.82.1",
100
100
  "@testing-library/jest-native": "^5.4.2",
101
101
  "@testing-library/react-native": "^13.0.1",
102
102
  "@types/hoist-non-react-statics": "^3.3.6",
@@ -104,7 +104,7 @@
104
104
  "@types/jest": "^29.5.13",
105
105
  "@types/lodash": "^4.17.20",
106
106
  "@types/prop-types": "^15.7.14",
107
- "@types/react": "^19.1.0",
107
+ "@types/react": "^19.1.1",
108
108
  "@types/react-test-renderer": "^19.1.0",
109
109
  "@typescript-eslint/eslint-plugin": "8.21.0",
110
110
  "@typescript-eslint/parser": "8.21.0",
@@ -124,15 +124,15 @@
124
124
  "pixelmatch": "^5.2.1",
125
125
  "pngjs": "^6.0.0",
126
126
  "prettier": "2.8.8",
127
- "react": "19.1.0",
128
- "react-native": "0.80.2",
127
+ "react": "19.1.1",
128
+ "react-native": "0.82.1",
129
129
  "react-native-builder-bob": "^0.40.13",
130
130
  "react-native-fast-image": "^8.6.3",
131
- "react-native-gesture-handler": "^2.22.1",
131
+ "react-native-gesture-handler": "^2.29.1",
132
132
  "react-native-reanimated": "4.1.5",
133
133
  "react-native-worklets": "0.5.0",
134
134
  "react-redux": "9.1.2",
135
- "react-test-renderer": "19.1.0",
135
+ "react-test-renderer": "19.1.1",
136
136
  "redux": "^5.0.1",
137
137
  "remx": "3.x.x",
138
138
  "semver": "5.x.x",
@@ -140,7 +140,7 @@
140
140
  "ssim.js": "^3.5.0",
141
141
  "ts-mockito": "^2.3.1",
142
142
  "typedoc": "0.x.x",
143
- "typescript": "5.0.4"
143
+ "typescript": "^5.8.3"
144
144
  },
145
145
  "workspaces": [
146
146
  "playground"
@@ -85,7 +85,7 @@ export class OptionsCrawler {
85
85
  const reactComponent = foundReactGenerator ? foundReactGenerator() : undefined;
86
86
  if (reactComponent && this.isComponentWithOptions(reactComponent)) {
87
87
  return isFunction(reactComponent.options)
88
- ? reactComponent.options({ componentId: layout.id, ...layout.passProps } || {})
88
+ ? reactComponent.options({ componentId: layout.id, ...layout.passProps })
89
89
  : reactComponent.options;
90
90
  }
91
91
  return {};