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.
- package/android/src/main/java/com/reactnativenavigation/NavigationActivity.java +14 -1
- package/android/src/main/java/com/reactnativenavigation/NavigationApplication.java +3 -0
- package/android/src/main/java/com/reactnativenavigation/NavigationPackage.kt +27 -8
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRow.kt +262 -0
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowAttacher.kt +205 -0
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowConfigStore.kt +32 -0
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowLayout.kt +139 -0
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowModule.kt +37 -0
- package/android/src/main/java/com/reactnativenavigation/customrow/BottomTabsCustomRowOptions.kt +68 -0
- package/android/src/main/java/com/reactnativenavigation/options/BottomTabOptions.java +4 -1
- package/android/src/main/java/com/reactnativenavigation/options/NavigationBarOptions.java +19 -1
- package/android/src/main/java/com/reactnativenavigation/react/ReactView.java +13 -0
- package/android/src/main/java/com/reactnativenavigation/react/events/ComponentType.java +2 -1
- package/android/src/main/java/com/reactnativenavigation/utils/SystemUiUtils.kt +63 -9
- package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenter.java +28 -0
- package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +77 -6
- package/android/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +1 -0
- package/android/src/main/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewController.java +2 -5
- package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +33 -13
- package/android/src/main/java/com/reactnativenavigation/views/bottomtabs/BottomTabs.java +76 -0
- package/android/src/main/java/com/reactnativenavigation/views/bottomtabs/CustomBottomTabItemView.kt +73 -0
- package/android/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +14 -0
- package/android/src/test/java/com/reactnativenavigation/utils/SystemUiUtilsTest.kt +64 -1
- package/ios/BottomTabPresenter.h +7 -0
- package/ios/BottomTabPresenter.mm +27 -0
- package/ios/RNNBottomTabOptions.h +2 -0
- package/ios/RNNBottomTabOptions.mm +5 -1
- package/ios/RNNBottomTabsController.h +2 -0
- package/ios/RNNBottomTabsController.mm +209 -1
- package/ios/RNNBottomTabsCustomRow.h +57 -0
- package/ios/RNNBottomTabsCustomRow.mm +252 -0
- package/ios/RNNBottomTabsCustomRowOptions.h +42 -0
- package/ios/RNNBottomTabsCustomRowOptions.mm +37 -0
- package/ios/RNNBottomTabsOptions.h +2 -0
- package/ios/RNNBottomTabsOptions.mm +2 -0
- package/ios/RNNComponentViewCreator.h +2 -1
- package/ios/RNNCustomTabBarItemView.h +26 -0
- package/ios/RNNCustomTabBarItemView.mm +83 -0
- package/ios/RNNReactRootViewCreator.mm +1 -0
- package/ios/RNNViewControllerFactory.mm +1 -0
- package/ios/ReactNativeNavigation.xcodeproj/project.pbxproj +24 -0
- package/lib/module/adapters/AndroidCustomRowForwarder.js +75 -0
- package/lib/module/adapters/AndroidCustomRowForwarder.js.map +1 -0
- package/lib/module/commands/Commands.js +8 -0
- package/lib/module/commands/Commands.js.map +1 -1
- package/lib/module/interfaces/Options.js.map +1 -1
- package/lib/typescript/adapters/AndroidCustomRowForwarder.d.ts +23 -0
- package/lib/typescript/adapters/AndroidCustomRowForwarder.d.ts.map +1 -0
- package/lib/typescript/commands/Commands.d.ts +1 -0
- package/lib/typescript/commands/Commands.d.ts.map +1 -1
- package/lib/typescript/interfaces/Options.d.ts +90 -0
- package/lib/typescript/interfaces/Options.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/AndroidCustomRowForwarder.ts +83 -0
- package/src/commands/Commands.ts +15 -0
- 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
|
|
@@ -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;;
|
|
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;
|
|
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
|