From 008185894eb29d7b662b12523a6ade1acda7632e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Kwas=CC=81niewski?= Date: Wed, 14 Feb 2024 10:29:21 +0100 Subject: [PATCH] fix: ignore changing header title color on visionOS --- ios/RNSScreenStackHeaderConfig.mm | 8 +++++++- src/native-stack/views/HeaderConfig.tsx | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ios/RNSScreenStackHeaderConfig.mm b/ios/RNSScreenStackHeaderConfig.mm index 4fa7506285..706051065a 100644 --- a/ios/RNSScreenStackHeaderConfig.mm +++ b/ios/RNSScreenStackHeaderConfig.mm @@ -227,7 +227,7 @@ + (void)setAnimatedConfig:(UIViewController *)vc withConfig:(RNSScreenStackHeade [navbar setTitleTextAttributes:attrs]; } -#if !TARGET_OS_TV +#if !TARGET_OS_T && !TARGET_OS_VISIONV if (@available(iOS 11.0, *)) { if (config.largeTitle && (config.largeTitleFontFamily || config.largeTitleFontSize || config.largeTitleFontWeight || @@ -397,9 +397,12 @@ + (UINavigationBarAppearance *)buildAppearance:(UIViewController *)vc if (config.titleFontFamily || config.titleFontSize || config.titleFontWeight || config.titleColor) { NSMutableDictionary *attrs = [NSMutableDictionary new]; + // Ignore changing header title color on visionOS +#if !TARGET_OS_VISION if (config.titleColor) { attrs[NSForegroundColorAttributeName] = config.titleColor; } +#endif NSString *family = config.titleFontFamily ?: nil; NSNumber *size = config.titleFontSize ?: @17; @@ -422,9 +425,12 @@ + (UINavigationBarAppearance *)buildAppearance:(UIViewController *)vc config.largeTitleColor || config.titleColor) { NSMutableDictionary *largeAttrs = [NSMutableDictionary new]; + // Ignore changing header title color on visionOS +#if !TARGET_OS_VISION if (config.largeTitleColor || config.titleColor) { largeAttrs[NSForegroundColorAttributeName] = config.largeTitleColor ? config.largeTitleColor : config.titleColor; } +#endif NSString *largeFamily = config.largeTitleFontFamily ?: nil; NSNumber *largeSize = config.largeTitleFontSize ?: @34; diff --git a/src/native-stack/views/HeaderConfig.tsx b/src/native-stack/views/HeaderConfig.tsx index 3264197790..787dc2a3af 100644 --- a/src/native-stack/views/HeaderConfig.tsx +++ b/src/native-stack/views/HeaderConfig.tsx @@ -16,6 +16,7 @@ import { import { NativeStackNavigationOptions } from '../types'; import { useBackPressSubscription } from '../utils/useBackPressSubscription'; import { processFonts } from './FontProcessor'; +import warnOnce from 'warn-once'; type Props = NativeStackNavigationOptions & { route: Route; @@ -96,6 +97,15 @@ export default function HeaderConfig({ return searchBar; }, [searchBar, createSubscription, clearSubscription]); + // @ts-ignore isVision is not yet in the type definitions (RN 0.74+) + const isVisionOS = Platform?.isVision; + + warnOnce( + isVisionOS && + (headerTitleStyle.color !== undefined || headerTintColor === undefined), + 'headerTitleStyle.color and headerTintColor are not supported on visionOS.' + ); + return (