@@ -30,6 +30,7 @@ @implementation RNSBottomTabsScreenComponentView {
30
30
BOOL _isOverrideScrollViewContentInsetAdjustmentBehaviorSet;
31
31
#if !RCT_NEW_ARCH_ENABLED
32
32
BOOL _tabItemNeedsAppearanceUpdate;
33
+ BOOL _tabScreenOrientationNeedsUpdate;
33
34
#endif // !RCT_NEW_ARCH_ENABLED
34
35
}
35
36
@@ -56,6 +57,7 @@ - (void)initState
56
57
57
58
#if !RCT_NEW_ARCH_ENABLED
58
59
_tabItemNeedsAppearanceUpdate = NO ;
60
+ _tabScreenOrientationNeedsUpdate = NO ;
59
61
#endif
60
62
[self resetProps ];
61
63
}
@@ -85,7 +87,7 @@ - (void)resetProps
85
87
86
88
_overrideScrollViewContentInsetAdjustmentBehavior = YES ;
87
89
_isOverrideScrollViewContentInsetAdjustmentBehaviorSet = NO ;
88
-
90
+
89
91
_iconType = RNSBottomTabsIconTypeSfSymbol;
90
92
91
93
_iconImageSource = nil ;
@@ -145,7 +147,7 @@ - (void)updateProps:(const facebook::react::Props::Shared &)props
145
147
_title = RCTNSStringFromStringNilIfEmpty (newComponentProps.title );
146
148
_controller.title = _title;
147
149
}
148
-
150
+
149
151
if (newComponentProps.orientation != oldComponentProps.orientation ) {
150
152
_orientation = rnscreens::conversion::RNSOrientationFromRNSBottomTabsScreenOrientation (newComponentProps.orientation );
151
153
tabScreenOrientationNeedsUpdate = YES ;
@@ -235,7 +237,7 @@ - (void)updateProps:(const facebook::react::Props::Shared &)props
235
237
rnscreens::conversion::RCTImageSourceFromImageSourceAndIconType (&newComponentProps.iconImageSource , _iconType);
236
238
tabItemNeedsAppearanceUpdate = YES ;
237
239
}
238
-
240
+
239
241
if (newComponentProps.iconSfSymbolName != oldComponentProps.iconSfSymbolName ) {
240
242
_iconSfSymbolName = RCTNSStringFromStringNilIfEmpty (newComponentProps.iconSfSymbolName );
241
243
tabItemNeedsAppearanceUpdate = YES ;
@@ -246,7 +248,7 @@ - (void)updateProps:(const facebook::react::Props::Shared &)props
246
248
rnscreens::conversion::RCTImageSourceFromImageSourceAndIconType (&newComponentProps.selectedIconImageSource , _iconType);
247
249
tabItemNeedsAppearanceUpdate = YES ;
248
250
}
249
-
251
+
250
252
if (newComponentProps.selectedIconSfSymbolName != oldComponentProps.selectedIconSfSymbolName ) {
251
253
_selectedIconSfSymbolName = RCTNSStringFromStringNilIfEmpty (newComponentProps.selectedIconSfSymbolName );
252
254
tabItemNeedsAppearanceUpdate = YES ;
@@ -283,7 +285,7 @@ - (void)updateProps:(const facebook::react::Props::Shared &)props
283
285
if (tabItemNeedsAppearanceUpdate) {
284
286
[_controller tabItemAppearanceHasChanged ];
285
287
}
286
-
288
+
287
289
if (tabScreenOrientationNeedsUpdate) {
288
290
[_controller tabScreenOrientationHasChanged ];
289
291
}
@@ -342,6 +344,11 @@ - (void)didSetProps:(NSArray<NSString *> *)changedProps
342
344
[_controller tabItemAppearanceHasChanged ];
343
345
_tabItemNeedsAppearanceUpdate = NO ;
344
346
}
347
+
348
+ if (_tabScreenOrientationNeedsUpdate) {
349
+ [_controller tabScreenOrientationHasChanged ];
350
+ _tabScreenOrientationNeedsUpdate = NO ;
351
+ }
345
352
}
346
353
347
354
#pragma mark - LEGACY prop setters
@@ -455,6 +462,12 @@ - (void)setSelectedIconSfSymbolName:(NSString *)selectedIconSfSymbolName
455
462
_tabItemNeedsAppearanceUpdate = YES ;
456
463
}
457
464
465
+ - (void )setOrientation : (RNSOrientation)orientation
466
+ {
467
+ _orientation = orientation;
468
+ _tabScreenOrientationNeedsUpdate = YES ;
469
+ }
470
+
458
471
- (void )setOnWillAppear : (RCTDirectEventBlock)onWillAppear
459
472
{
460
473
[self .reactEventEmitter setOnWillAppear: onWillAppear];
0 commit comments