react-native-navigation 8.8.5 → 8.8.6-snapshot.2569

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 (56) hide show
  1. package/android/src/main/java/com/reactnativenavigation/NavigationActivity.java +14 -1
  2. package/android/src/main/java/com/reactnativenavigation/NavigationApplication.java +3 -0
  3. package/android/src/main/java/com/reactnativenavigation/NavigationPackage.kt +27 -8
  4. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRow.kt +262 -0
  5. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowAttacher.kt +205 -0
  6. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowConfigStore.kt +32 -0
  7. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowLayout.kt +139 -0
  8. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowModule.kt +37 -0
  9. package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowOptions.kt +68 -0
  10. package/android/src/main/java/com/reactnativenavigation/options/BottomTabOptions.java +4 -1
  11. package/android/src/main/java/com/reactnativenavigation/options/NavigationBarOptions.java +19 -1
  12. package/android/src/main/java/com/reactnativenavigation/react/ReactView.java +13 -0
  13. package/android/src/main/java/com/reactnativenavigation/react/events/ComponentType.java +2 -1
  14. package/android/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +63 -9
  15. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +28 -0
  16. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +77 -6
  17. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +1 -0
  18. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +2 -5
  19. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +33 -13
  20. package/android/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java +76 -0
  21. package/android/src/main/java/com/reactnativenavigation/views/bottomtabs/CustomBottomTabItemView.kt +73 -0
  22. package/android/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +14 -0
  23. package/android/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +64 -1
  24. package/ios/BottomTabPresenter.h +7 -0
  25. package/ios/BottomTabPresenter.mm +27 -0
  26. package/ios/RNNBottomTabOptions.h +2 -0
  27. package/ios/RNNBottomTabOptions.mm +5 -1
  28. package/ios/RNNBottomTabsController.h +2 -0
  29. package/ios/RNNBottomTabsController.mm +209 -1
  30. package/ios/RNNBottomTabsCustomRow.h +57 -0
  31. package/ios/RNNBottomTabsCustomRow.mm +252 -0
  32. package/ios/RNNBottomTabsCustomRowOptions.h +42 -0
  33. package/ios/RNNBottomTabsCustomRowOptions.mm +37 -0
  34. package/ios/RNNBottomTabsOptions.h +2 -0
  35. package/ios/RNNBottomTabsOptions.mm +2 -0
  36. package/ios/RNNComponentViewCreator.h +2 -1
  37. package/ios/RNNCustomTabBarItemView.h +26 -0
  38. package/ios/RNNCustomTabBarItemView.mm +83 -0
  39. package/ios/RNNReactRootViewCreator.mm +1 -0
  40. package/ios/RNNViewControllerFactory.mm +1 -0
  41. package/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +24 -0
  42. package/lib/module/adapters/AndroidCustomRowForwarder.js +75 -0
  43. package/lib/module/adapters/AndroidCustomRowForwarder.js.map +1 -0
  44. package/lib/module/commands/Commands.js +8 -0
  45. package/lib/module/commands/Commands.js.map +1 -1
  46. package/lib/module/interfaces/Options.js.map +1 -1
  47. package/lib/typescript/adapters/AndroidCustomRowForwarder.d.ts +23 -0
  48. package/lib/typescript/adapters/AndroidCustomRowForwarder.d.ts.map +1 -0
  49. package/lib/typescript/commands/Commands.d.ts +1 -0
  50. package/lib/typescript/commands/Commands.d.ts.map +1 -1
  51. package/lib/typescript/interfaces/Options.d.ts +90 -0
  52. package/lib/typescript/interfaces/Options.d.ts.map +1 -1
  53. package/package.json +1 -1
  54. package/src/adapters/AndroidCustomRowForwarder.ts +83 -0
  55. package/src/commands/Commands.ts +15 -0
  56. package/src/interfaces/Options.ts +92 -0
@@ -26,6 +26,7 @@
26
26
  self.borderColor = [ColorParser parse:dict key:@"borderColor"];
27
27
  self.borderWidth = [NumberParser parse:dict key:@"borderWidth"];
28
28
  self.shadow = [[RNNShadowOptions alloc] initWithDict:dict[@"shadow"]];
29
+ self.customRow = [[RNNBottomTabsCustomRowOptions alloc] initWithDict:dict[@"customRow"]];
29
30
 
30
31
  return self;
31
32
  }
@@ -69,6 +70,7 @@
69
70
  self.borderWidth = options.borderWidth;
70
71
 
71
72
  [self.shadow mergeOptions:options.shadow];
73
+ [self.customRow mergeOptions:options.customRow];
72
74
  }
73
75
 
74
76
  - (BOOL)shouldDrawBehind {
@@ -9,7 +9,8 @@ typedef enum RNNComponentType {
9
9
  RNNComponentTypeComponent,
10
10
  RNNComponentTypeTopBarTitle,
11
11
  RNNComponentTypeTopBarButton,
12
- RNNComponentTypeTopBarBackground
12
+ RNNComponentTypeTopBarBackground,
13
+ RNNComponentTypeBottomTabItem
13
14
  } RNNComponentType;
14
15
 
15
16
  @protocol RNNComponentViewCreator
@@ -0,0 +1,26 @@
1
+ #import "RNNReactView.h"
2
+ #import <UIKit/UIKit.h>
3
+
4
+ /**
5
+ * Hosts an `RNNReactView` that renders a user-supplied React component as a
6
+ * bottom tab item. The view is laid out on top of the underlying
7
+ * `UITabBarButton` and forwards touches to it so native selection,
8
+ * accessibility focus and `selectTabOnPress: false` keep working.
9
+ *
10
+ * The hosted component receives `componentId`, `tabIndex`, `selected` and
11
+ * `badge` props. Selected state is updated via `setSelected:`.
12
+ */
13
+ @interface RNNCustomTabBarItemView : UIView
14
+
15
+ @property(nonatomic, readonly, strong) RNNReactView *reactView;
16
+
17
+ - (instancetype)initWithReactView:(RNNReactView *)reactView
18
+ tabIndex:(NSUInteger)tabIndex
19
+ selected:(BOOL)selected
20
+ badge:(NSString *)badge;
21
+
22
+ - (void)setSelected:(BOOL)selected;
23
+
24
+ - (void)setBadge:(NSString *)badge;
25
+
26
+ @end
@@ -0,0 +1,83 @@
1
+ #import "RNNCustomTabBarItemView.h"
2
+
3
+ @interface RNNCustomTabBarItemView ()
4
+
5
+ @property(nonatomic, readwrite, strong) RNNReactView *reactView;
6
+ @property(nonatomic, assign) NSUInteger tabIndex;
7
+ @property(nonatomic, assign) BOOL isSelected;
8
+ @property(nonatomic, copy) NSString *badge;
9
+
10
+ @end
11
+
12
+ @implementation RNNCustomTabBarItemView
13
+
14
+ - (instancetype)initWithReactView:(RNNReactView *)reactView
15
+ tabIndex:(NSUInteger)tabIndex
16
+ selected:(BOOL)selected
17
+ badge:(NSString *)badge {
18
+ self = [super initWithFrame:CGRectZero];
19
+ if (self) {
20
+ _reactView = reactView;
21
+ _tabIndex = tabIndex;
22
+ _isSelected = selected;
23
+ _badge = [badge copy];
24
+
25
+ self.backgroundColor = [UIColor clearColor];
26
+ self.userInteractionEnabled = NO;
27
+
28
+ _reactView.backgroundColor = [UIColor clearColor];
29
+ _reactView.userInteractionEnabled = NO;
30
+ [self addSubview:_reactView];
31
+
32
+ [self updateProps];
33
+ }
34
+ return self;
35
+ }
36
+
37
+ - (void)layoutSubviews {
38
+ [super layoutSubviews];
39
+ self.reactView.frame = self.bounds;
40
+ }
41
+
42
+ - (CGSize)sizeThatFits:(CGSize)size {
43
+ return size;
44
+ }
45
+
46
+ - (void)setSelected:(BOOL)selected {
47
+ if (self.isSelected == selected) {
48
+ return;
49
+ }
50
+ self.isSelected = selected;
51
+ [self updateProps];
52
+ }
53
+
54
+ - (void)setBadge:(NSString *)badge {
55
+ if (badge == _badge || [badge isEqualToString:_badge]) {
56
+ return;
57
+ }
58
+ _badge = [badge copy];
59
+ [self updateProps];
60
+ }
61
+
62
+ - (void)updateProps {
63
+ NSMutableDictionary *props = [NSMutableDictionary dictionary];
64
+ #ifdef RCT_NEW_ARCH_ENABLED
65
+ // RNNReactView's `properties` setter is a no-op on Fabric (it writes to
66
+ // the auto-synthesized ivar instead of the underlying surface). Update
67
+ // the React tree by writing directly to the surface so prop changes
68
+ // propagate to JS.
69
+ [props addEntriesFromDictionary:(self.reactView.surface.properties ?: @{})];
70
+ #else
71
+ [props addEntriesFromDictionary:(self.reactView.appProperties ?: @{})];
72
+ #endif
73
+ props[@"tabIndex"] = @(self.tabIndex);
74
+ props[@"selected"] = @(self.isSelected);
75
+ props[@"badge"] = self.badge ?: [NSNull null];
76
+ #ifdef RCT_NEW_ARCH_ENABLED
77
+ self.reactView.surface.properties = props;
78
+ #else
79
+ self.reactView.appProperties = props;
80
+ #endif
81
+ }
82
+
83
+ @end
@@ -71,6 +71,7 @@
71
71
  return RNNReactButtonView.class;
72
72
  case RNNComponentTypeTopBarBackground:
73
73
  return RNNReactBackgroundView.class;
74
+ case RNNComponentTypeBottomTabItem:
74
75
  case RNNComponentTypeComponent:
75
76
  default:
76
77
  return RNNComponentRootView.class;
@@ -234,6 +234,7 @@
234
234
  presenter:presenter
235
235
  bottomTabPresenter:bottomTabPresenter
236
236
  dotIndicatorPresenter:dotIndicatorPresenter
237
+ componentRegistry:_componentRegistry
237
238
  eventEmitter:_eventEmitter
238
239
  childViewControllers:childViewControllers
239
240
  bottomTabsAttacher:bottomTabsAttacher];
@@ -73,6 +73,12 @@
73
73
  5012242B217372B3000F5F98 /* ImageParser.mm in Sources */ = {isa = PBXBuildFile; fileRef = 50122429217372B3000F5F98 /* ImageParser.mm */; };
74
74
  5016E8EF20209690009D4F7C /* RNNCustomTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 5016E8ED2020968F009D4F7C /* RNNCustomTitleView.h */; };
75
75
  5016E8F020209690009D4F7C /* RNNCustomTitleView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5016E8EE2020968F009D4F7C /* RNNCustomTitleView.mm */; };
76
+ EE4A5C0001000000ABCD0001 /* RNNCustomTabBarItemView.h in Headers */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0003 /* RNNCustomTabBarItemView.h */; };
77
+ EE4A5C0001000000ABCD0002 /* RNNCustomTabBarItemView.mm in Sources */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0004 /* RNNCustomTabBarItemView.mm */; };
78
+ EE4A5C0001000000ABCD0011 /* RNNBottomTabsCustomRow.h in Headers */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0013 /* RNNBottomTabsCustomRow.h */; };
79
+ EE4A5C0001000000ABCD0012 /* RNNBottomTabsCustomRow.mm in Sources */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0014 /* RNNBottomTabsCustomRow.mm */; };
80
+ EE4A5C0001000000ABCD0021 /* RNNBottomTabsCustomRowOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0023 /* RNNBottomTabsCustomRowOptions.h */; };
81
+ EE4A5C0001000000ABCD0022 /* RNNBottomTabsCustomRowOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = EE4A5C0001000000ABCD0024 /* RNNBottomTabsCustomRowOptions.mm */; };
76
82
  50175CD1207A2AA1004FE91B /* RNNComponentOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 50175CCF207A2AA1004FE91B /* RNNComponentOptions.h */; };
77
83
  50175CD2207A2AA1004FE91B /* RNNComponentOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 50175CD0207A2AA1004FE91B /* RNNComponentOptions.mm */; };
78
84
  5017D9E1239D2C6C00B74047 /* BottomTabsAttachModeFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 5017D9DF239D2C6C00B74047 /* BottomTabsAttachModeFactory.h */; };
@@ -568,6 +574,12 @@
568
574
  50122429217372B3000F5F98 /* ImageParser.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ImageParser.mm; sourceTree = "<group>"; };
569
575
  5016E8ED2020968F009D4F7C /* RNNCustomTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNCustomTitleView.h; sourceTree = "<group>"; };
570
576
  5016E8EE2020968F009D4F7C /* RNNCustomTitleView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNNCustomTitleView.mm; sourceTree = "<group>"; };
577
+ EE4A5C0001000000ABCD0003 /* RNNCustomTabBarItemView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNCustomTabBarItemView.h; sourceTree = "<group>"; };
578
+ EE4A5C0001000000ABCD0004 /* RNNCustomTabBarItemView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNNCustomTabBarItemView.mm; sourceTree = "<group>"; };
579
+ EE4A5C0001000000ABCD0013 /* RNNBottomTabsCustomRow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNBottomTabsCustomRow.h; sourceTree = "<group>"; };
580
+ EE4A5C0001000000ABCD0014 /* RNNBottomTabsCustomRow.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNNBottomTabsCustomRow.mm; sourceTree = "<group>"; };
581
+ EE4A5C0001000000ABCD0023 /* RNNBottomTabsCustomRowOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNNBottomTabsCustomRowOptions.h; sourceTree = "<group>"; };
582
+ EE4A5C0001000000ABCD0024 /* RNNBottomTabsCustomRowOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNNBottomTabsCustomRowOptions.mm; sourceTree = "<group>"; };
571
583
  50175CCF207A2AA1004FE91B /* RNNComponentOptions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNNComponentOptions.h; sourceTree = "<group>"; };
572
584
  50175CD0207A2AA1004FE91B /* RNNComponentOptions.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNNComponentOptions.mm; sourceTree = "<group>"; };
573
585
  5017D9DF239D2C6C00B74047 /* BottomTabsAttachModeFactory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BottomTabsAttachModeFactory.h; sourceTree = "<group>"; };
@@ -1663,6 +1675,12 @@
1663
1675
  children = (
1664
1676
  5016E8ED2020968F009D4F7C /* RNNCustomTitleView.h */,
1665
1677
  5016E8EE2020968F009D4F7C /* RNNCustomTitleView.mm */,
1678
+ EE4A5C0001000000ABCD0003 /* RNNCustomTabBarItemView.h */,
1679
+ EE4A5C0001000000ABCD0004 /* RNNCustomTabBarItemView.mm */,
1680
+ EE4A5C0001000000ABCD0013 /* RNNBottomTabsCustomRow.h */,
1681
+ EE4A5C0001000000ABCD0014 /* RNNBottomTabsCustomRow.mm */,
1682
+ EE4A5C0001000000ABCD0023 /* RNNBottomTabsCustomRowOptions.h */,
1683
+ EE4A5C0001000000ABCD0024 /* RNNBottomTabsCustomRowOptions.mm */,
1666
1684
  E8A5CD601F49114F00E89D0D /* RNNElement.h */,
1667
1685
  E8A5CD611F49114F00E89D0D /* RNNElement.mm */,
1668
1686
  E8AEDB3A1F55A1C2000F5A6A /* RNNElementView.h */,
@@ -1737,6 +1755,9 @@
1737
1755
  E5F6C3A422DB4D0F0093C2CE /* UIColor+RNNUtils.h in Headers */,
1738
1756
  5038A3C1216E1E66009280BC /* RNNFontAttributesCreator.h in Headers */,
1739
1757
  5016E8EF20209690009D4F7C /* RNNCustomTitleView.h in Headers */,
1758
+ EE4A5C0001000000ABCD0001 /* RNNCustomTabBarItemView.h in Headers */,
1759
+ EE4A5C0001000000ABCD0011 /* RNNBottomTabsCustomRow.h in Headers */,
1760
+ EE4A5C0001000000ABCD0021 /* RNNBottomTabsCustomRowOptions.h in Headers */,
1740
1761
  500623A525B7003A0086AB39 /* RNNShadowOptions.h in Headers */,
1741
1762
  50415CBA20553B8E00BB682E /* RNNScreenTransition.h in Headers */,
1742
1763
  5039558B2174829400B0A663 /* IntNumberParser.h in Headers */,
@@ -2042,6 +2063,9 @@
2042
2063
  50CB3B6A1FDE911400AA153B /* RNNSideMenuOptions.mm in Sources */,
2043
2064
  503A8A0623BB850A0094D1C4 /* TimeInterval.mm in Sources */,
2044
2065
  5016E8F020209690009D4F7C /* RNNCustomTitleView.mm in Sources */,
2066
+ EE4A5C0001000000ABCD0002 /* RNNCustomTabBarItemView.mm in Sources */,
2067
+ EE4A5C0001000000ABCD0012 /* RNNBottomTabsCustomRow.mm in Sources */,
2068
+ EE4A5C0001000000ABCD0022 /* RNNBottomTabsCustomRowOptions.mm in Sources */,
2045
2069
  5061B6C823D48449008B9827 /* VerticalRotationTransition.mm in Sources */,
2046
2070
  5022EDB62405224B00852BA6 /* BottomTabPresenter.mm in Sources */,
2047
2071
  503955982174864E00B0A663 /* NullDouble.mm in Sources */,
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ import { NativeModules, Platform } from 'react-native';
4
+ /**
5
+ * Walks a Layout / Options tree looking for `bottomTabs.customRow`
6
+ * configuration and forwards it to the Android-only native module
7
+ * `RNNBottomTabsCustomRowModule`.
8
+ *
9
+ * On iOS this is a no-op — the existing native options parser already picks
10
+ * up `bottomTabs.customRow` and applies it to the iOS custom row.
11
+ *
12
+ * The original layout/options object is *never* modified — both pipelines
13
+ * (iOS native parser, Android native parser which currently ignores the
14
+ * field) keep seeing the same data.
15
+ */
16
+ export class AndroidCustomRowForwarder {
17
+ forwardFromLayout(layout) {
18
+ if (!this.shouldForward()) return;
19
+ const config = this.findCustomRowInLayout(layout);
20
+ if (config) this.send(config);
21
+ }
22
+ forwardFromLayouts(layouts) {
23
+ if (!this.shouldForward()) return;
24
+ for (const layout of layouts) {
25
+ const config = this.findCustomRowInLayout(layout);
26
+ if (config) {
27
+ this.send(config);
28
+ return;
29
+ }
30
+ }
31
+ }
32
+ forwardFromOptions(options) {
33
+ if (!this.shouldForward() || !options) return;
34
+ const config = this.extractFromOptions(options);
35
+ if (config) this.send(config);
36
+ }
37
+ shouldForward() {
38
+ return Platform.OS === 'android';
39
+ }
40
+ findCustomRowInLayout(layout) {
41
+ if (!layout || typeof layout !== 'object') return null;
42
+ // Walk both the raw layout shape (`layout.options`) and the
43
+ // post-`layoutTreeParser.parse` shape (`layout.data.options`).
44
+ const direct = this.extractFromOptions(layout.options) ?? this.extractFromOptions(layout.data?.options);
45
+ if (direct) return direct;
46
+ const children = layout.children;
47
+ if (Array.isArray(children)) {
48
+ for (const child of children) {
49
+ const found = this.findCustomRowInLayout(child);
50
+ if (found) return found;
51
+ }
52
+ }
53
+ return null;
54
+ }
55
+ extractFromOptions(options) {
56
+ if (!options || typeof options !== 'object') return null;
57
+ const bottomTabs = options.bottomTabs;
58
+ if (!bottomTabs || typeof bottomTabs !== 'object') return null;
59
+ const customRow = bottomTabs.customRow;
60
+ if (!customRow || typeof customRow !== 'object') return null;
61
+ return customRow;
62
+ }
63
+ send(config) {
64
+ const nativeModule = NativeModules.RNNBottomTabsCustomRowModule;
65
+ if (!nativeModule || typeof nativeModule.configure !== 'function') {
66
+ return;
67
+ }
68
+ try {
69
+ nativeModule.configure(config);
70
+ } catch {
71
+ // Native module not ready yet; attacher will pick up config on next rescan.
72
+ }
73
+ }
74
+ }
75
+ //# sourceMappingURL=AndroidCustomRowForwarder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","AndroidCustomRowForwarder","forwardFromLayout","layout","shouldForward","config","findCustomRowInLayout","send","forwardFromLayouts","layouts","forwardFromOptions","options","extractFromOptions","OS","direct","data","children","Array","isArray","child","found","bottomTabs","customRow","nativeModule","RNNBottomTabsCustomRowModule","configure"],"sourceRoot":"../../../src","sources":["adapters/AndroidCustomRowForwarder.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,CAAC;EACrCC,iBAAiBA,CAACC,MAAW,EAAE;IAC7B,IAAI,CAAC,IAAI,CAACC,aAAa,CAAC,CAAC,EAAE;IAC3B,MAAMC,MAAM,GAAG,IAAI,CAACC,qBAAqB,CAACH,MAAM,CAAC;IACjD,IAAIE,MAAM,EAAE,IAAI,CAACE,IAAI,CAACF,MAAM,CAAC;EAC/B;EAEAG,kBAAkBA,CAACC,OAAc,EAAE;IACjC,IAAI,CAAC,IAAI,CAACL,aAAa,CAAC,CAAC,EAAE;IAC3B,KAAK,MAAMD,MAAM,IAAIM,OAAO,EAAE;MAC5B,MAAMJ,MAAM,GAAG,IAAI,CAACC,qBAAqB,CAACH,MAAM,CAAC;MACjD,IAAIE,MAAM,EAAE;QACV,IAAI,CAACE,IAAI,CAACF,MAAM,CAAC;QACjB;MACF;IACF;EACF;EAEAK,kBAAkBA,CAACC,OAA4B,EAAE;IAC/C,IAAI,CAAC,IAAI,CAACP,aAAa,CAAC,CAAC,IAAI,CAACO,OAAO,EAAE;IACvC,MAAMN,MAAM,GAAG,IAAI,CAACO,kBAAkB,CAACD,OAAO,CAAC;IAC/C,IAAIN,MAAM,EAAE,IAAI,CAACE,IAAI,CAACF,MAAM,CAAC;EAC/B;EAEQD,aAAaA,CAAA,EAAY;IAC/B,OAAOJ,QAAQ,CAACa,EAAE,KAAK,SAAS;EAClC;EAEQP,qBAAqBA,CAACH,MAAW,EAAiB;IACxD,IAAI,CAACA,MAAM,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,IAAI;IACtD;IACA;IACA,MAAMW,MAAM,GACV,IAAI,CAACF,kBAAkB,CAACT,MAAM,CAACQ,OAAO,CAAC,IACvC,IAAI,CAACC,kBAAkB,CAACT,MAAM,CAACY,IAAI,EAAEJ,OAAO,CAAC;IAC/C,IAAIG,MAAM,EAAE,OAAOA,MAAM;IACzB,MAAME,QAAQ,GAAGb,MAAM,CAACa,QAAQ;IAChC,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;MAC3B,KAAK,MAAMG,KAAK,IAAIH,QAAQ,EAAE;QAC5B,MAAMI,KAAK,GAAG,IAAI,CAACd,qBAAqB,CAACa,KAAK,CAAC;QAC/C,IAAIC,KAAK,EAAE,OAAOA,KAAK;MACzB;IACF;IACA,OAAO,IAAI;EACb;EAEQR,kBAAkBA,CAACD,OAA4B,EAAiB;IACtE,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE,OAAO,IAAI;IACxD,MAAMU,UAAe,GAAIV,OAAO,CAASU,UAAU;IACnD,IAAI,CAACA,UAAU,IAAI,OAAOA,UAAU,KAAK,QAAQ,EAAE,OAAO,IAAI;IAC9D,MAAMC,SAAS,GAAGD,UAAU,CAACC,SAAS;IACtC,IAAI,CAACA,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE,OAAO,IAAI;IAC5D,OAAOA,SAAS;EAClB;EAEQf,IAAIA,CAACF,MAAc,EAAQ;IACjC,MAAMkB,YAAY,GAAIxB,aAAa,CAASyB,4BAA4B;IACxE,IAAI,CAACD,YAAY,IAAI,OAAOA,YAAY,CAACE,SAAS,KAAK,UAAU,EAAE;MACjE;IACF;IACA,IAAI;MACFF,YAAY,CAACE,SAAS,CAACpB,MAAM,CAAC;IAChC,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF","ignoreList":[]}
@@ -4,7 +4,9 @@ import cloneDeepWith from 'lodash/cloneDeepWith';
4
4
  import cloneDeep from 'lodash/cloneDeep';
5
5
  import map from 'lodash/map';
6
6
  import { CommandName } from "../interfaces/CommandName.js";
7
+ import { AndroidCustomRowForwarder } from "../adapters/AndroidCustomRowForwarder.js";
7
8
  export class Commands {
9
+ androidCustomRowForwarder = new AndroidCustomRowForwarder();
8
10
  constructor(store, nativeCommandsSender, layoutTreeParser, layoutTreeCrawler, commandsObserver, uniqueIdProvider, optionsProcessor, layoutProcessor, optionsCrawler) {
9
11
  this.store = store;
10
12
  this.nativeCommandsSender = nativeCommandsSender;
@@ -47,6 +49,7 @@ export class Commands {
47
49
  overlays.forEach(overlayLayout => {
48
50
  this.layoutTreeCrawler.crawl(overlayLayout, CommandName.SetRoot);
49
51
  });
52
+ this.androidCustomRowForwarder.forwardFromLayouts([root, ...modals, ...overlays]);
50
53
  const result = this.nativeCommandsSender.setRoot(commandId, {
51
54
  root,
52
55
  modals,
@@ -57,6 +60,7 @@ export class Commands {
57
60
  setDefaultOptions(options) {
58
61
  const input = cloneDeep(options);
59
62
  this.optionsProcessor.processDefaultOptions(input, CommandName.SetDefaultOptions);
63
+ this.androidCustomRowForwarder.forwardFromOptions(input);
60
64
  this.nativeCommandsSender.setDefaultOptions(input);
61
65
  this.commandsObserver.notify(CommandName.SetDefaultOptions, {
62
66
  options
@@ -68,6 +72,7 @@ export class Commands {
68
72
  const componentProps = this.store.getPropsForId(componentId) || undefined;
69
73
  this.optionsProcessor.processOptions(CommandName.MergeOptions, input, componentProps);
70
74
  if (component && !component.isMounted) console.warn(`Navigation.mergeOptions was invoked on component with id: ${componentId} before it is mounted, this can cause UI issues and should be avoided.\n Use static options instead.`);
75
+ this.androidCustomRowForwarder.forwardFromOptions(input);
71
76
  this.nativeCommandsSender.mergeOptions(componentId, input);
72
77
  this.commandsObserver.notify(CommandName.MergeOptions, {
73
78
  componentId,
@@ -92,6 +97,7 @@ export class Commands {
92
97
  layout: layoutNode
93
98
  });
94
99
  this.layoutTreeCrawler.crawl(layoutNode, CommandName.ShowModal);
100
+ this.androidCustomRowForwarder.forwardFromLayout(layoutNode);
95
101
  const result = this.nativeCommandsSender.showModal(commandId, layoutNode);
96
102
  return result;
97
103
  }
@@ -128,6 +134,7 @@ export class Commands {
128
134
  layout
129
135
  });
130
136
  this.layoutTreeCrawler.crawl(layout, CommandName.Push);
137
+ this.androidCustomRowForwarder.forwardFromLayout(layout);
131
138
  const result = this.nativeCommandsSender.push(commandId, componentId, layout);
132
139
  return result;
133
140
  }
@@ -180,6 +187,7 @@ export class Commands {
180
187
  input.forEach(layoutNode => {
181
188
  this.layoutTreeCrawler.crawl(layoutNode, CommandName.SetStackRoot);
182
189
  });
190
+ this.androidCustomRowForwarder.forwardFromLayouts(input);
183
191
  const result = this.nativeCommandsSender.setStackRoot(commandId, componentId, input);
184
192
  return result;
185
193
  }
@@ -1 +1 @@
1
- {"version":3,"names":["cloneDeepWith","cloneDeep","map","CommandName","Commands","constructor","store","nativeCommandsSender","layoutTreeParser","layoutTreeCrawler","commandsObserver","uniqueIdProvider","optionsProcessor","layoutProcessor","optionsCrawler","setRoot","simpleApi","input","cloneLayout","crawl","root","processedRoot","process","SetRoot","parse","modals","modal","processedModal","overlays","overlay","processedOverlay","commandId","generate","notify","layout","forEach","modalLayout","overlayLayout","result","setDefaultOptions","options","processDefaultOptions","SetDefaultOptions","mergeOptions","componentId","component","getComponentInstance","componentProps","getPropsForId","undefined","processOptions","MergeOptions","isMounted","console","warn","updateProps","props","callback","UpdateProps","showModal","layoutCloned","layoutProcessed","ShowModal","layoutNode","dismissModal","DismissModal","dismissAllModals","DismissAllModals","push","Push","pop","Pop","popTo","PopTo","popToRoot","PopToRoot","setStackRoot","children","SetStackRoot","showOverlay","ShowOverlay","dismissOverlay","DismissOverlay","dismissAllOverlays","DismissAllOverlays","getLaunchArgs","GetLaunchArgs","value","key"],"sourceRoot":"../../../src","sources":["commands/Commands.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cloneDeepWith","cloneDeep","map","CommandName","AndroidCustomRowForwarder","Commands","androidCustomRowForwarder","constructor","store","nativeCommandsSender","layoutTreeParser","layoutTreeCrawler","commandsObserver","uniqueIdProvider","optionsProcessor","layoutProcessor","optionsCrawler","setRoot","simpleApi","input","cloneLayout","crawl","root","processedRoot","process","SetRoot","parse","modals","modal","processedModal","overlays","overlay","processedOverlay","commandId","generate","notify","layout","forEach","modalLayout","overlayLayout","forwardFromLayouts","result","setDefaultOptions","options","processDefaultOptions","SetDefaultOptions","forwardFromOptions","mergeOptions","componentId","component","getComponentInstance","componentProps","getPropsForId","undefined","processOptions","MergeOptions","isMounted","console","warn","updateProps","props","callback","UpdateProps","showModal","layoutCloned","layoutProcessed","ShowModal","layoutNode","forwardFromLayout","dismissModal","DismissModal","dismissAllModals","DismissAllModals","push","Push","pop","Pop","popTo","PopTo","popToRoot","PopToRoot","setStackRoot","children","SetStackRoot","showOverlay","ShowOverlay","dismissOverlay","DismissOverlay","dismissAllOverlays","DismissAllOverlays","getLaunchArgs","GetLaunchArgs","value","key"],"sourceRoot":"../../../src","sources":["commands/Commands.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["OptionsModalPresentationStyle","OptionsModalTransitionStyle"],"sourceRoot":"../../../src","sources":["interfaces/Options.ts"],"mappings":";;AAAA;;AAGA;AACA;;AAwMA,WAAYA,6BAA6B,0BAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAAA,OAA7BA,6BAA6B;AAAA;AAWzC,WAAYC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;;AA4lCvC;AACA;AACA;AACA;;AAiJA;AACA;AACA;;AA0DA;AACA;AACA;;AA6BA;AACA;AACA;;AAMA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["OptionsModalPresentationStyle","OptionsModalTransitionStyle"],"sourceRoot":"../../../src","sources":["interfaces/Options.ts"],"mappings":";;AAAA;;AAGA;AACA;;AAwMA,WAAYA,6BAA6B,0BAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAA7BA,6BAA6B;EAAA,OAA7BA,6BAA6B;AAAA;AAWzC,WAAYC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;;AAmrCvC;AACA;AACA;AACA;;AAiJA;AACA;AACA;;AA0DA;AACA;AACA;;AA6BA;AACA;AACA;;AAWA;AACA;AACA","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { Options } from '../interfaces/Options';
2
+ /**
3
+ * Walks a Layout / Options tree looking for `bottomTabs.customRow`
4
+ * configuration and forwards it to the Android-only native module
5
+ * `RNNBottomTabsCustomRowModule`.
6
+ *
7
+ * On iOS this is a no-op — the existing native options parser already picks
8
+ * up `bottomTabs.customRow` and applies it to the iOS custom row.
9
+ *
10
+ * The original layout/options object is *never* modified — both pipelines
11
+ * (iOS native parser, Android native parser which currently ignores the
12
+ * field) keep seeing the same data.
13
+ */
14
+ export declare class AndroidCustomRowForwarder {
15
+ forwardFromLayout(layout: any): void;
16
+ forwardFromLayouts(layouts: any[]): void;
17
+ forwardFromOptions(options: Options | undefined): void;
18
+ private shouldForward;
19
+ private findCustomRowInLayout;
20
+ private extractFromOptions;
21
+ private send;
22
+ }
23
+ //# sourceMappingURL=AndroidCustomRowForwarder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AndroidCustomRowForwarder.d.ts","sourceRoot":"","sources":["../../../src/adapters/AndroidCustomRowForwarder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,qBAAa,yBAAyB;IACpC,iBAAiB,CAAC,MAAM,EAAE,GAAG;IAM7B,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE;IAWjC,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAM/C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,IAAI;CAWb"}
@@ -19,6 +19,7 @@ export declare class Commands {
19
19
  private readonly optionsProcessor;
20
20
  private readonly layoutProcessor;
21
21
  private readonly optionsCrawler;
22
+ private readonly androidCustomRowForwarder;
22
23
  constructor(store: Store, nativeCommandsSender: NativeCommandsSender, layoutTreeParser: LayoutTreeParser, layoutTreeCrawler: LayoutTreeCrawler, commandsObserver: CommandsObserver, uniqueIdProvider: UniqueIdProvider, optionsProcessor: OptionsProcessor, layoutProcessor: LayoutProcessor, optionsCrawler: OptionsCrawler);
23
24
  setRoot(simpleApi: LayoutRoot): Promise<string>;
24
25
  setDefaultOptions(options: Options): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/commands/Commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBARd,KAAK,EAAE,KAAK,EACZ,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc;IAG1C,OAAO,CAAC,SAAS,EAAE,UAAU;IAoC7B,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAQlC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAelD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAKrE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAc9B,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAYxD,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO;IAQvC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAcjD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQ/C,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQjD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQrD,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;IAsB1D,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAcnC,cAAc,CAAC,WAAW,EAAE,MAAM;IAOlC,kBAAkB;IAOlB,aAAa;CAMrB"}
1
+ {"version":3,"file":"Commands.d.ts","sourceRoot":"","sources":["../../../src/commands/Commands.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,qBAAa,QAAQ;IAIjB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAXjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAmC;gBAG1D,KAAK,EAAE,KAAK,EACZ,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc;IAG1C,OAAO,CAAC,SAAS,EAAE,UAAU;IAsC7B,iBAAiB,CAAC,OAAO,EAAE,OAAO;IAUlC,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAiBlD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI;IAKrE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAgB9B,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAYxD,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO;IAQvC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAgBjD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQ/C,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQjD,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IAQrD,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;IAwB1D,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAcnC,cAAc,CAAC,WAAW,EAAE,MAAM;IAOlC,kBAAkB;IAOlB,aAAa;CAMrB"}
@@ -916,6 +916,53 @@ export interface OptionsBottomTabs {
916
916
  * Control the shadow of the Bottom tabs bar
917
917
  */
918
918
  shadow?: ShadowOptions;
919
+ /**
920
+ * Visual options for the floating row that hosts custom React-component
921
+ * bottom tab cells. Only takes effect when every `bottomTab.component`
922
+ * is set on that `bottomTabs` layout.
923
+ *
924
+ * Same JS shape on iOS and Android. iOS applies options via the native
925
+ * parser; Android receives them through `RNNBottomTabsCustomRowModule`.
926
+ */
927
+ customRow?: BottomTabsCustomRowOptions;
928
+ }
929
+ export interface BottomTabsCustomRowOptions {
930
+ /**
931
+ * Content height of the row in points (iOS) / dp (Android). Excludes
932
+ * safe-area inset. Total row height = `height` + safe bottom + `bottomMargin`.
933
+ *
934
+ * Default: native tab content height; on iOS 26+ an extra 18pt when omitted.
935
+ */
936
+ height?: number;
937
+ /**
938
+ * Solid background color for the row. When set, overrides
939
+ * `backgroundEffect`.
940
+ */
941
+ backgroundColor?: Color;
942
+ /**
943
+ * Visual effect for the row background.
944
+ * - `glass`: iOS 26+ `UIGlassEffect`.
945
+ * - `blur`: `UIBlurEffect` with `systemChromeMaterial`.
946
+ * - `none`: fully transparent.
947
+ *
948
+ * Default: `glass` on iOS 26+, `blur` on older versions.
949
+ */
950
+ backgroundEffect?: 'glass' | 'blur' | 'none';
951
+ /**
952
+ * Corner radius applied to the row's background.
953
+ * Default: 28 on iOS 26+, 0 below.
954
+ */
955
+ cornerRadius?: number;
956
+ /**
957
+ * Horizontal inset from the screen edges.
958
+ * Default: 16 on iOS 26+, 0 below.
959
+ */
960
+ horizontalMargin?: number;
961
+ /**
962
+ * Distance between the row's bottom edge and the safe-area bottom.
963
+ * Default: 0.
964
+ */
965
+ bottomMargin?: number;
919
966
  }
920
967
  export interface ShadowOptions {
921
968
  /**
@@ -943,6 +990,44 @@ export interface ImageSystemSource {
943
990
  export type ImageResource = ImageSourcePropType | string | ImageSystemSource;
944
991
  export interface OptionsBottomTab {
945
992
  dotIndicator?: DotIndicatorOptions;
993
+ /**
994
+ * Render a React component as the tab item content (icon + text area).
995
+ *
996
+ * When set, the native icon, text and font props (`text`, `icon`,
997
+ * `selectedIcon`, `sfSymbol`, `sfSelectedSymbol`, `iconColor`,
998
+ * `selectedIconColor`, `iconWidth`, `iconHeight`, `iconInsets`,
999
+ * `fontFamily`, `fontWeight`, `fontSize`, `selectedFontSize`,
1000
+ * `textColor`, `selectedTextColor`) are ignored for that tab.
1001
+ *
1002
+ * For the custom rendering to take effect every tab in the
1003
+ * `bottomTabs` layout must declare a `component`. If only some
1004
+ * tabs declare one a warning is logged and native rendering is
1005
+ * used for all tabs.
1006
+ *
1007
+ * The component receives the following initial props and
1008
+ * subsequent prop updates:
1009
+ * - `componentId`: stable id for this tab item instance
1010
+ * - `tabIndex`: position of the tab (0-based)
1011
+ * - `selected`: whether this tab is currently selected
1012
+ * - `badge`: current badge text (mirrors `bottomTab.badge`)
1013
+ *
1014
+ * Native still owns selection, hide/show, drawBehind, animations
1015
+ * and the dot indicator. To switch tabs from inside the component
1016
+ * use `Navigation.mergeOptions(parentId, { bottomTabs: { currentTabIndex } })`.
1017
+ */
1018
+ component?: {
1019
+ /**
1020
+ * The registered name of the component (passed to
1021
+ * `Navigation.registerComponent`).
1022
+ */
1023
+ name: string;
1024
+ /**
1025
+ * Props passed once when the component is created. Updates from
1026
+ * native (`selected`, `badge`) are delivered as separate prop
1027
+ * updates.
1028
+ */
1029
+ passProps?: object;
1030
+ };
946
1031
  /**
947
1032
  * Set the text to display below the icon
948
1033
  */
@@ -1443,6 +1528,11 @@ export interface AnimationOptions {
1443
1528
  export interface NavigationBarOptions {
1444
1529
  backgroundColor?: Color;
1445
1530
  visible?: boolean;
1531
+ /**
1532
+ * Draw screen content behind the system navigation bar while keeping it visible.
1533
+ * On Android 15+ edge-to-edge, use with `backgroundColor: 'transparent'`.
1534
+ */
1535
+ drawBehind?: boolean;
1446
1536
  }
1447
1537
  /**
1448
1538
  * Used for configuring and controlling the main window in iOS