diff --git a/apps/src/tests/Test2320.tsx b/apps/src/tests/Test2320.tsx
new file mode 100644
index 0000000000..ebebf1607b
--- /dev/null
+++ b/apps/src/tests/Test2320.tsx
@@ -0,0 +1,56 @@
+import * as React from "react";
+import { ScrollView, Text } from "react-native";
+import { createNativeStackNavigator } from "@react-navigation/native-stack";
+import { NavigationContainer, useTheme } from "@react-navigation/native";
+import { SafeAreaProvider } from "react-native-safe-area-context";
+
+const ArticleScreen = () => {
+ return (
+
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting
+ industry. Lorem Ipsum has been the industry's standard dummy text
+ ever since the 1500s, when an unknown printer took a galley of type and
+ scrambled it to make a type specimen book. It has survived not only five
+ centuries, but also the leap into electronic typesetting, remaining
+ essentially unchanged. It was popularised in the 1960s with the release
+ of Letraset sheets containing Lorem Ipsum passages, and more recently
+ with desktop publishing software like Aldus PageMaker including versions
+ of Lorem Ipsum.
+ Contrary to popular belief, Lorem Ipsum is not simply random text. It
+ has roots in a piece of classical Latin literature from 45 BC, making it
+ over 2000 years old. Richard McClintock, a Latin professor at
+ Hampden-Sydney College in Virginia, looked up one of the more obscure
+ Latin words, consectetur, from a Lorem Ipsum passage, and going through
+ the cites of the word in classical literature, discovered the
+ undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33
+ of "de Finibus Bonorum et Malorum" (The Extremes of Good and
+ Evil) by Cicero, written in 45 BC. This book is a treatise on the theory
+ of ethics, very popular during the Renaissance. The first line of Lorem
+ Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in
+ section 1.10.32.
+
+
+ );
+}
+
+export default function App() {
+ const Stack = createNativeStackNavigator();
+ return (
+
+
+
+
+
+
+
+ )
+}
diff --git a/apps/src/tests/index.ts b/apps/src/tests/index.ts
index b35f4fb546..979aecaae8 100644
--- a/apps/src/tests/index.ts
+++ b/apps/src/tests/index.ts
@@ -111,6 +111,7 @@ export { default as Test2252 } from './Test2252';
export { default as Test2271 } from './Test2271';
export { default as Test2282 } from './Test2282';
export { default as Test2317 } from './Test2317';
+export { default as Test2320 } from './Test2320';
export { default as Test2332 } from './Test2332';
export { default as Test2395 } from './Test2395';
export { default as TestScreenAnimation } from './TestScreenAnimation';
diff --git a/ios/RNSConvert.h b/ios/RNSConvert.h
index fa3d02f4a9..6ebd7bd9ae 100644
--- a/ios/RNSConvert.h
+++ b/ios/RNSConvert.h
@@ -1,12 +1,17 @@
-#ifdef RCT_NEW_ARCH_ENABLED
#import
+#ifdef RCT_NEW_ARCH_ENABLED
#import
+#endif // RCT_NEW_ARCH_ENABLED
#import "RNSEnums.h"
+#ifdef RCT_NEW_ARCH_ENABLED
namespace react = facebook::react;
+#endif // RCT_NEW_ARCH_ENABLED
@interface RNSConvert : NSObject
+#ifdef RCT_NEW_ARCH_ENABLED
+
+ (UISemanticContentAttribute)UISemanticContentAttributeFromCppEquivalent:
(react::RNSScreenStackHeaderConfigDirection)direction;
@@ -42,8 +47,12 @@ namespace react = facebook::react;
+ (NSMutableArray *)arrayFromVector:(const std::vector &)vector;
-+ (UIBlurEffectStyle)UIBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect;
-
-@end
++ (RNSBlurEffectStyle)RNSBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect;
#endif // RCT_NEW_ARCH_ENABLED
+
+/// This method fails (by assertion) when `blurEffect == RNSBlurEffectStyleNone` which has no counter part in the UIKit
+/// type.
++ (UIBlurEffectStyle)tryConvertRNSBlurEffectStyleToUIBlurEffectStyle:(RNSBlurEffectStyle)blurEffect;
+
+@end
diff --git a/ios/RNSConvert.mm b/ios/RNSConvert.mm
index 67c6519b90..90aac23be6 100644
--- a/ios/RNSConvert.mm
+++ b/ios/RNSConvert.mm
@@ -1,8 +1,12 @@
#import "RNSConvert.h"
-#ifdef RCT_NEW_ARCH_ENABLED
+#ifndef RCT_NEW_ARCH_ENABLED
+#import
+#endif // !RCT_NEW_ARCH_ENABLED
+
@implementation RNSConvert
+#ifdef RCT_NEW_ARCH_ENABLED
+ (UISemanticContentAttribute)UISemanticContentAttributeFromCppEquivalent:
(react::RNSScreenStackHeaderConfigDirection)direction
{
@@ -173,71 +177,89 @@ + (RNSSearchBarPlacement)RNSScreenSearchBarPlacementFromCppEquivalent:(react::RN
return array;
}
-+ (UIBlurEffectStyle)UIBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect
++ (RNSBlurEffectStyle)RNSBlurEffectStyleFromCppEquivalent:(react::RNSScreenStackHeaderConfigBlurEffect)blurEffect
{
#if !TARGET_OS_TV && defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
if (@available(iOS 13.0, *)) {
switch (blurEffect) {
+ case react::RNSScreenStackHeaderConfigBlurEffect::None:
+ return RNSBlurEffectStyleNone;
case react::RNSScreenStackHeaderConfigBlurEffect::ExtraLight:
- return UIBlurEffectStyleExtraLight;
+ return RNSBlurEffectStyleExtraLight;
case react::RNSScreenStackHeaderConfigBlurEffect::Light:
- return UIBlurEffectStyleLight;
+ return RNSBlurEffectStyleLight;
case react::RNSScreenStackHeaderConfigBlurEffect::Dark:
- return UIBlurEffectStyleDark;
+ return RNSBlurEffectStyleDark;
case react::RNSScreenStackHeaderConfigBlurEffect::Regular:
- return UIBlurEffectStyleRegular;
+ return RNSBlurEffectStyleRegular;
case react::RNSScreenStackHeaderConfigBlurEffect::Prominent:
- return UIBlurEffectStyleProminent;
+ return RNSBlurEffectStyleProminent;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterial:
- return UIBlurEffectStyleSystemUltraThinMaterial;
+ return RNSBlurEffectStyleSystemUltraThinMaterial;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterial:
- return UIBlurEffectStyleSystemThinMaterial;
+ return RNSBlurEffectStyleSystemThinMaterial;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemMaterial:
- return UIBlurEffectStyleSystemMaterial;
+ return RNSBlurEffectStyleSystemMaterial;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterial:
- return UIBlurEffectStyleSystemThickMaterial;
+ return RNSBlurEffectStyleSystemThickMaterial;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterial:
- return UIBlurEffectStyleSystemChromeMaterial;
+ return RNSBlurEffectStyleSystemChromeMaterial;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialLight:
- return UIBlurEffectStyleSystemUltraThinMaterialLight;
+ return RNSBlurEffectStyleSystemUltraThinMaterialLight;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialLight:
- return UIBlurEffectStyleSystemThinMaterialLight;
+ return RNSBlurEffectStyleSystemThinMaterialLight;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemMaterialLight:
- return UIBlurEffectStyleSystemMaterialLight;
+ return RNSBlurEffectStyleSystemMaterialLight;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialLight:
- return UIBlurEffectStyleSystemThickMaterialLight;
+ return RNSBlurEffectStyleSystemThickMaterialLight;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialLight:
- return UIBlurEffectStyleSystemChromeMaterialLight;
+ return RNSBlurEffectStyleSystemChromeMaterialLight;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialDark:
- return UIBlurEffectStyleSystemUltraThinMaterialDark;
+ return RNSBlurEffectStyleSystemUltraThinMaterialDark;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialDark:
- return UIBlurEffectStyleSystemThinMaterialDark;
+ return RNSBlurEffectStyleSystemThinMaterialDark;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemMaterialDark:
- return UIBlurEffectStyleSystemMaterialDark;
+ return RNSBlurEffectStyleSystemMaterialDark;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialDark:
- return UIBlurEffectStyleSystemThickMaterialDark;
+ return RNSBlurEffectStyleSystemThickMaterialDark;
case react::RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialDark:
- return UIBlurEffectStyleSystemChromeMaterialDark;
+ return RNSBlurEffectStyleSystemChromeMaterialDark;
}
}
#endif
switch (blurEffect) {
+ case react::RNSScreenStackHeaderConfigBlurEffect::None:
+ return RNSBlurEffectStyleNone;
case react::RNSScreenStackHeaderConfigBlurEffect::Light:
- return UIBlurEffectStyleLight;
+ return RNSBlurEffectStyleLight;
case react::RNSScreenStackHeaderConfigBlurEffect::Dark:
- return UIBlurEffectStyleDark;
+ return RNSBlurEffectStyleDark;
case react::RNSScreenStackHeaderConfigBlurEffect::Regular:
- return UIBlurEffectStyleRegular;
+ return RNSBlurEffectStyleRegular;
case react::RNSScreenStackHeaderConfigBlurEffect::Prominent:
- return UIBlurEffectStyleProminent;
+ return RNSBlurEffectStyleProminent;
case react::RNSScreenStackHeaderConfigBlurEffect::ExtraLight:
default:
- return UIBlurEffectStyleExtraLight;
+ return RNSBlurEffectStyleNone;
}
}
-@end
+#endif // RCT_NEW_ARCH_ENABLED
++ (UIBlurEffectStyle)tryConvertRNSBlurEffectStyleToUIBlurEffectStyle:(RNSBlurEffectStyle)blurEffect
+{
+#ifdef RCT_NEW_ARCH_ENABLED
+ react_native_assert(blurEffect != RNSBlurEffectStyleNone);
+#else
+ RCTAssert(
+ blurEffect != RNSBlurEffectStyleNone, @"RNSBlurEffectStyleNone variant is not convertible to UIBlurEffectStyle");
#endif // RCT_NEW_ARCH_ENABLED
+
+ // Cast safety: RNSBlurEffectStyle is defined in such way that its values map 1:1 with
+ // UIBlurEffectStyle, except RNSBlurEffectStyleNone which is excluded above.
+ return (UIBlurEffectStyle)blurEffect;
+}
+
+@end
diff --git a/ios/RNSEnums.h b/ios/RNSEnums.h
index 5a51bb264d..2d05610b48 100644
--- a/ios/RNSEnums.h
+++ b/ios/RNSEnums.h
@@ -71,3 +71,49 @@ typedef NS_ENUM(NSInteger, RNSSearchBarPlacement) {
RNSSearchBarPlacementInline,
RNSSearchBarPlacementStacked,
};
+
+// Redefinition of UIBlurEffectStyle. We need to represent additional case of `None`.
+typedef NS_ENUM(NSInteger, RNSBlurEffectStyle) {
+ /// No blur effect should be visible
+ RNSBlurEffectStyleNone = -1,
+ RNSBlurEffectStyleExtraLight = UIBlurEffectStyleExtraLight,
+ RNSBlurEffectStyleLight = UIBlurEffectStyleLight,
+ RNSBlurEffectStyleDark = UIBlurEffectStyleDark,
+ // TODO: Add support for this variant on tvOS
+ // RNSBlurEffectStyleExtraDark = UIBlurEffectStyleExtraDark API_AVAILABLE(tvos(10.0)) API_UNAVAILABLE(ios)
+ // API_UNAVAILABLE(watchos),
+ RNSBlurEffectStyleRegular API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(watchos) = UIBlurEffectStyleRegular,
+ RNSBlurEffectStyleProminent API_AVAILABLE(ios(10.0)) API_UNAVAILABLE(watchos) = UIBlurEffectStyleProminent,
+ RNSBlurEffectStyleSystemUltraThinMaterial API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemUltraThinMaterial,
+ RNSBlurEffectStyleSystemThinMaterial API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThinMaterial,
+ RNSBlurEffectStyleSystemMaterial API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemMaterial,
+ RNSBlurEffectStyleSystemThickMaterial API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThickMaterial,
+ RNSBlurEffectStyleSystemChromeMaterial API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemChromeMaterial,
+ RNSBlurEffectStyleSystemUltraThinMaterialLight API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemUltraThinMaterialLight,
+ RNSBlurEffectStyleSystemThinMaterialLight API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThinMaterialLight,
+ RNSBlurEffectStyleSystemMaterialLight API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemMaterialLight,
+ RNSBlurEffectStyleSystemThickMaterialLight API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThickMaterialLight,
+ RNSBlurEffectStyleSystemChromeMaterialLight API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemChromeMaterialLight,
+
+ RNSBlurEffectStyleSystemUltraThinMaterialDark API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemUltraThinMaterialDark,
+ RNSBlurEffectStyleSystemThinMaterialDark API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThinMaterialDark,
+ RNSBlurEffectStyleSystemMaterialDark API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemMaterialDark,
+ RNSBlurEffectStyleSystemThickMaterialDark API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemThickMaterialDark,
+ RNSBlurEffectStyleSystemChromeMaterialDark API_AVAILABLE(ios(13.0))
+ API_UNAVAILABLE(watchos, tvos) = UIBlurEffectStyleSystemChromeMaterialDark
+
+} API_AVAILABLE(ios(8.0)) API_UNAVAILABLE(watchos);
diff --git a/ios/RNSScreenStackHeaderConfig.h b/ios/RNSScreenStackHeaderConfig.h
index f0dad8d9ea..b9d33831d3 100644
--- a/ios/RNSScreenStackHeaderConfig.h
+++ b/ios/RNSScreenStackHeaderConfig.h
@@ -56,7 +56,7 @@
@property (nonatomic) BOOL backButtonInCustomView;
@property (nonatomic) UISemanticContentAttribute direction;
@property (nonatomic) UINavigationItemBackButtonDisplayMode backButtonDisplayMode;
-@property (nonatomic) UIBlurEffectStyle blurEffect;
+@property (nonatomic) RNSBlurEffectStyle blurEffect;
+ (void)willShowViewController:(UIViewController *)vc
animated:(BOOL)animated
diff --git a/ios/RNSScreenStackHeaderConfig.mm b/ios/RNSScreenStackHeaderConfig.mm
index ff329e4161..d9ad274ae9 100644
--- a/ios/RNSScreenStackHeaderConfig.mm
+++ b/ios/RNSScreenStackHeaderConfig.mm
@@ -110,6 +110,7 @@ - (void)initProps
self.hidden = YES;
_reactSubviews = [NSMutableArray new];
_backTitleVisible = YES;
+ _blurEffect = RNSBlurEffectStyleNone;
}
- (UIView *)reactSuperview
@@ -449,8 +450,11 @@ + (UINavigationBarAppearance *)buildAppearance:(UIViewController *)vc
appearance.backgroundColor = config.backgroundColor;
}
- if (config.blurEffect) {
- appearance.backgroundEffect = [UIBlurEffect effectWithStyle:config.blurEffect];
+ if (config.blurEffect != RNSBlurEffectStyleNone) {
+ appearance.backgroundEffect =
+ [UIBlurEffect effectWithStyle:[RNSConvert tryConvertRNSBlurEffectStyleToUIBlurEffectStyle:config.blurEffect]];
+ } else {
+ appearance.backgroundEffect = nil;
}
if (config.hideShadow) {
@@ -977,7 +981,7 @@ - (void)updateProps:(react::Props::Shared const &)props oldProps:(react::Props::
_backgroundColor = RCTUIColorFromSharedColor(newScreenProps.backgroundColor);
if (newScreenProps.blurEffect != oldScreenProps.blurEffect) {
- _blurEffect = [RNSConvert UIBlurEffectStyleFromCppEquivalent:newScreenProps.blurEffect];
+ _blurEffect = [RNSConvert RNSBlurEffectStyleFromCppEquivalent:newScreenProps.blurEffect];
}
[self updateViewControllerIfNeeded];
@@ -1061,7 +1065,7 @@ - (RCTShadowView *)shadowView
RCT_EXPORT_VIEW_PROPERTY(backTitleFontSize, NSNumber)
RCT_EXPORT_VIEW_PROPERTY(backgroundColor, UIColor)
RCT_EXPORT_VIEW_PROPERTY(backTitleVisible, BOOL)
-RCT_EXPORT_VIEW_PROPERTY(blurEffect, UIBlurEffectStyle)
+RCT_EXPORT_VIEW_PROPERTY(blurEffect, RNSBlurEffectStyle)
RCT_EXPORT_VIEW_PROPERTY(color, UIColor)
RCT_EXPORT_VIEW_PROPERTY(direction, UISemanticContentAttribute)
RCT_EXPORT_VIEW_PROPERTY(largeTitle, BOOL)
@@ -1127,36 +1131,37 @@ + (NSMutableDictionary *)blurEffectsForIOSVersion
{
NSMutableDictionary *blurEffects = [NSMutableDictionary new];
[blurEffects addEntriesFromDictionary:@{
- @"extraLight" : @(UIBlurEffectStyleExtraLight),
- @"light" : @(UIBlurEffectStyleLight),
- @"dark" : @(UIBlurEffectStyleDark),
+ @"none" : @(RNSBlurEffectStyleNone),
+ @"extraLight" : @(RNSBlurEffectStyleExtraLight),
+ @"light" : @(RNSBlurEffectStyleLight),
+ @"dark" : @(RNSBlurEffectStyleDark),
}];
if (@available(iOS 10.0, *)) {
[blurEffects addEntriesFromDictionary:@{
- @"regular" : @(UIBlurEffectStyleRegular),
- @"prominent" : @(UIBlurEffectStyleProminent),
+ @"regular" : @(RNSBlurEffectStyleRegular),
+ @"prominent" : @(RNSBlurEffectStyleProminent),
}];
}
#if !TARGET_OS_TV && defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && defined(__IPHONE_13_0) && \
__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_13_0
if (@available(iOS 13.0, *)) {
[blurEffects addEntriesFromDictionary:@{
- @"systemUltraThinMaterial" : @(UIBlurEffectStyleSystemUltraThinMaterial),
- @"systemThinMaterial" : @(UIBlurEffectStyleSystemThinMaterial),
- @"systemMaterial" : @(UIBlurEffectStyleSystemMaterial),
- @"systemThickMaterial" : @(UIBlurEffectStyleSystemThickMaterial),
- @"systemChromeMaterial" : @(UIBlurEffectStyleSystemChromeMaterial),
- @"systemUltraThinMaterialLight" : @(UIBlurEffectStyleSystemUltraThinMaterialLight),
- @"systemThinMaterialLight" : @(UIBlurEffectStyleSystemThinMaterialLight),
- @"systemMaterialLight" : @(UIBlurEffectStyleSystemMaterialLight),
- @"systemThickMaterialLight" : @(UIBlurEffectStyleSystemThickMaterialLight),
- @"systemChromeMaterialLight" : @(UIBlurEffectStyleSystemChromeMaterialLight),
- @"systemUltraThinMaterialDark" : @(UIBlurEffectStyleSystemUltraThinMaterialDark),
- @"systemThinMaterialDark" : @(UIBlurEffectStyleSystemThinMaterialDark),
- @"systemMaterialDark" : @(UIBlurEffectStyleSystemMaterialDark),
- @"systemThickMaterialDark" : @(UIBlurEffectStyleSystemThickMaterialDark),
- @"systemChromeMaterialDark" : @(UIBlurEffectStyleSystemChromeMaterialDark),
+ @"systemUltraThinMaterial" : @(RNSBlurEffectStyleSystemUltraThinMaterial),
+ @"systemThinMaterial" : @(RNSBlurEffectStyleSystemThinMaterial),
+ @"systemMaterial" : @(RNSBlurEffectStyleSystemMaterial),
+ @"systemThickMaterial" : @(RNSBlurEffectStyleSystemThickMaterial),
+ @"systemChromeMaterial" : @(RNSBlurEffectStyleSystemChromeMaterial),
+ @"systemUltraThinMaterialLight" : @(RNSBlurEffectStyleSystemUltraThinMaterialLight),
+ @"systemThinMaterialLight" : @(RNSBlurEffectStyleSystemThinMaterialLight),
+ @"systemMaterialLight" : @(RNSBlurEffectStyleSystemMaterialLight),
+ @"systemThickMaterialLight" : @(RNSBlurEffectStyleSystemThickMaterialLight),
+ @"systemChromeMaterialLight" : @(RNSBlurEffectStyleSystemChromeMaterialLight),
+ @"systemUltraThinMaterialDark" : @(RNSBlurEffectStyleSystemUltraThinMaterialDark),
+ @"systemThinMaterialDark" : @(RNSBlurEffectStyleSystemThinMaterialDark),
+ @"systemMaterialDark" : @(RNSBlurEffectStyleSystemMaterialDark),
+ @"systemThickMaterialDark" : @(RNSBlurEffectStyleSystemThickMaterialDark),
+ @"systemChromeMaterialDark" : @(RNSBlurEffectStyleSystemChromeMaterialDark),
}];
}
#endif
@@ -1182,6 +1187,6 @@ + (NSMutableDictionary *)blurEffectsForIOSVersion
UINavigationItemBackButtonDisplayModeDefault,
integerValue)
-RCT_ENUM_CONVERTER(UIBlurEffectStyle, ([self blurEffectsForIOSVersion]), UIBlurEffectStyleExtraLight, integerValue)
+RCT_ENUM_CONVERTER(RNSBlurEffectStyle, ([self blurEffectsForIOSVersion]), RNSBlurEffectStyleNone, integerValue)
@end
diff --git a/src/fabric/ScreenStackHeaderConfigNativeComponent.ts b/src/fabric/ScreenStackHeaderConfigNativeComponent.ts
index 3d0aca023e..f47d82ae0e 100644
--- a/src/fabric/ScreenStackHeaderConfigNativeComponent.ts
+++ b/src/fabric/ScreenStackHeaderConfigNativeComponent.ts
@@ -18,6 +18,7 @@ type OnDetachedEvent = Readonly<{}>;
type BackButtonDisplayMode = 'minimal' | 'default' | 'generic';
type BlurEffect =
+ | 'none'
| 'extraLight'
| 'light'
| 'dark'
@@ -68,7 +69,7 @@ export interface NativeProps extends ViewProps {
backButtonDisplayMode?: WithDefault;
hideBackButton?: boolean;
backButtonInCustomView?: boolean;
- blurEffect?: WithDefault;
+ blurEffect?: WithDefault;
// TODO: implement this props on iOS
topInsetEnabled?: boolean;
}
diff --git a/src/types.tsx b/src/types.tsx
index a40cbdeb76..2af4400d75 100644
--- a/src/types.tsx
+++ b/src/types.tsx
@@ -42,6 +42,7 @@ export type StackAnimationTypes =
| 'ios_from_right'
| 'ios_from_left';
export type BlurEffectTypes =
+ | 'none'
| 'extraLight'
| 'light'
| 'dark'