From b74e0ebf9f84a1b29f06cdece70c246c27e0c735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20Du=C5=BCy?= <91994767+alduzy@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:34:08 +0200 Subject: [PATCH] fix: header config missing ref (#2434) ## Description This PR changes `ScreenStackHeaderConfig` into a [forwardRef](@alduzy/reanimated-patch). This is needed if you want to attach `ref` to it, which **react-native-reanimated** needs to do [here](https://github.com/software-mansion/react-native-reanimated/blob/1d417a5c711d60822d25bd8b823f1f5968214bde/apps/common-app/src/examples/ScreenStackHeaderConfigBackgroundColorExample.tsx#L24) in order to migrate to v4, since the header config is now a function component and cannot be used directly anymore. Without this change the app crashes with `Cannot read property 'getScrollableNode' of null`. Related PR: https://github.com/software-mansion/react-native-reanimated/pull/6622 ## Checklist - [x] Ensured that CI passes --- src/components/ScreenStackHeaderConfig.tsx | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/components/ScreenStackHeaderConfig.tsx b/src/components/ScreenStackHeaderConfig.tsx index 7631446bd5..2b990c7924 100644 --- a/src/components/ScreenStackHeaderConfig.tsx +++ b/src/components/ScreenStackHeaderConfig.tsx @@ -6,7 +6,7 @@ import { ScreenStackHeaderConfigProps, SearchBarProps, } from '../types'; -import { Image, ImageProps, StyleSheet, ViewProps } from 'react-native'; +import { Image, ImageProps, StyleSheet, View, ViewProps } from 'react-native'; // Native components import ScreenStackHeaderConfigNativeComponent from '../fabric/ScreenStackHeaderConfigNativeComponent'; @@ -16,17 +16,19 @@ export const ScreenStackHeaderSubview: React.ComponentType< React.PropsWithChildren > = ScreenStackHeaderSubviewNativeComponent as any; -export function ScreenStackHeaderConfig( - props: ScreenStackHeaderConfigProps, -): React.JSX.Element { - return ( - - ); -} +export const ScreenStackHeaderConfig = React.forwardRef< + View, + ScreenStackHeaderConfigProps +>((props, ref) => ( + +)); + +ScreenStackHeaderConfig.displayName = 'ScreenStackHeaderConfig'; export const ScreenStackHeaderBackButtonImage = ( props: ImageProps,