react-native-screens 3.21.0 → 3.21.1

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/README.md CHANGED
@@ -91,12 +91,14 @@ Screens are already integrated with the React Native's most popular navigation l
91
91
 
92
92
  [Fabric](https://reactnative.dev/architecture/fabric-renderer) is React Native's new rendering system.
93
93
 
94
+ - As of [version `3.21.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.21.0) of this project, Fabric is supported only for react-native 0.72+. Support for lower versions has been dropped.
94
95
  - As of [version `3.19.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.19.0) of this project, Fabric is supported only for react-native 0.71+. Support for lower versions has been dropped.
95
96
  - As of [version `3.18.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.18.0) of this project, Fabric is supported only for react-native 0.70+. Support for lower versions has been dropped.
96
97
  - As of [version `3.14.0`](https://github.com/software-mansion/react-native-screens/releases/tag/3.14.0) of this project, Fabric is supported only for react-native 0.69+. Support for lower versions has been dropped.
97
98
 
98
99
  | version | react-native version |
99
100
  | ------- | -------------------- |
101
+ | 3.21.0+ | 0.72.0+ |
100
102
  | 3.19.0+ | 0.71.0+ |
101
103
  | 3.18.0+ | 0.70.0+ |
102
104
  | 3.14.0+ | 0.69.0+ |
@@ -0,0 +1,60 @@
1
+ package com.swmansion.rnscreens
2
+
3
+ import android.view.View
4
+ import androidx.fragment.app.Fragment
5
+ import androidx.lifecycle.Lifecycle
6
+ import androidx.lifecycle.LifecycleObserver
7
+
8
+ class LifecycleHelper {
9
+ private val mViewToLifecycleMap: MutableMap<View, Lifecycle> = HashMap()
10
+ private val mRegisterOnLayoutChange: View.OnLayoutChangeListener = object : View.OnLayoutChangeListener {
11
+ override fun onLayoutChange(
12
+ view: View,
13
+ i: Int,
14
+ i1: Int,
15
+ i2: Int,
16
+ i3: Int,
17
+ i4: Int,
18
+ i5: Int,
19
+ i6: Int,
20
+ i7: Int
21
+ ) {
22
+ registerViewWithLifecycleOwner(view)
23
+ view.removeOnLayoutChangeListener(this)
24
+ }
25
+ }
26
+
27
+ private fun registerViewWithLifecycleOwner(view: View) {
28
+ val parent = findNearestScreenFragmentAncestor(view)
29
+ if (parent != null && view is LifecycleObserver) {
30
+ val lifecycle = parent.lifecycle
31
+ lifecycle.addObserver((view as LifecycleObserver))
32
+ mViewToLifecycleMap[view] = lifecycle
33
+ }
34
+ }
35
+
36
+ fun <T> register(view: T) where T : View, T : LifecycleObserver? {
37
+ // we need to wait until view is mounted in the hierarchy as this method is called only at the
38
+ // moment of the view creation. In order to register lifecycle observer we need to find ancestor
39
+ // of type Screen and this can only happen when the view is properly attached. We rely on
40
+ // Android's onLayout callback being triggered when the view gets added to the hierarchy and
41
+ // only then we attempt to locate lifecycle owner ancestor.
42
+ view.addOnLayoutChangeListener(mRegisterOnLayoutChange)
43
+ }
44
+
45
+ fun <T> unregister(view: T) where T : View, T : LifecycleObserver? {
46
+ mViewToLifecycleMap[view]?.removeObserver(view)
47
+ }
48
+
49
+ companion object {
50
+ fun findNearestScreenFragmentAncestor(view: View): Fragment? {
51
+ var parent = view.parent
52
+ while (parent != null && parent !is Screen) {
53
+ parent = parent.parent
54
+ }
55
+ return if (parent != null) {
56
+ (parent as Screen).fragment
57
+ } else null
58
+ }
59
+ }
60
+ }
@@ -27,6 +27,7 @@ var _exportNames = {
27
27
  shouldUseActivityState: true,
28
28
  useTransitionProgress: true,
29
29
  isSearchBarAvailableForCurrentPlatform: true,
30
+ isNewBackTitleImplementation: true,
30
31
  executeNativeBackPress: true
31
32
  };
32
33
  exports.SearchBar = exports.ScreenStackHeaderSubview = exports.ScreenStackHeaderSearchBarView = exports.ScreenStackHeaderRightView = exports.ScreenStackHeaderLeftView = exports.ScreenStackHeaderConfig = exports.ScreenStackHeaderCenterView = exports.ScreenStackHeaderBackButtonImage = exports.ScreenStack = exports.ScreenContext = exports.ScreenContainer = exports.Screen = exports.NativeScreenNavigationContainer = exports.NativeScreenContainer = exports.NativeScreen = exports.InnerScreen = exports.FullWindowOverlay = void 0;
@@ -38,6 +39,12 @@ Object.defineProperty(exports, "executeNativeBackPress", {
38
39
  return _utils.executeNativeBackPress;
39
40
  }
40
41
  });
42
+ Object.defineProperty(exports, "isNewBackTitleImplementation", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _utils.isNewBackTitleImplementation;
46
+ }
47
+ });
41
48
  Object.defineProperty(exports, "isSearchBarAvailableForCurrentPlatform", {
42
49
  enumerable: true,
43
50
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useTransitionProgress","_utils","obj","__esModule","default","_extends","assign","bind","target","i","arguments","length","source","apply","ENABLE_SCREENS","enableScreens","shouldEnableScreens","undefined","screensEnabled","enableFreeze","shouldEnableReactFreeze","NativeScreen","React","Component","render","active","activityState","style","enabled","rest","props","createElement","View","hidden","display","Screen","Animated","createAnimatedComponent","InnerScreen","ScreenContext","createContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","Image","resizeMode","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Animated, View, ViewProps, ImageProps, Image } from 'react-native';\nimport {\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n HeaderSubviewTypes,\n SearchBarProps,\n} from './types';\n\nexport * from './types';\nexport { default as useTransitionProgress } from './useTransitionProgress';\nexport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\nlet ENABLE_SCREENS = true;\n\nexport function enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = shouldEnableScreens;\n}\n\nexport function screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// @ts-ignore function stub, freezing logic is located in index.native.tsx\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function enableFreeze(shouldEnableReactFreeze = true): void {\n // noop\n}\n\nexport class NativeScreen extends React.Component<ScreenProps> {\n render(): JSX.Element {\n let {\n active,\n activityState,\n style,\n enabled = ENABLE_SCREENS,\n ...rest\n } = this.props;\n\n if (enabled) {\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx\n }\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={activityState === 0}\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n {...rest}\n />\n );\n }\n\n return <View {...rest} />;\n }\n}\n\nexport const Screen = Animated.createAnimatedComponent(NativeScreen);\n\nexport const InnerScreen = View;\n\nexport const ScreenContext = React.createContext(Screen);\n\nexport const ScreenContainer: React.ComponentType<ScreenContainerProps> = View;\n\nexport const NativeScreenContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const NativeScreenNavigationContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const ScreenStack: React.ComponentType<ScreenStackProps> = View;\n\nexport const FullWindowOverlay = View as React.ComponentType<{\n children: ReactNode;\n}>;\n\nexport const ScreenStackHeaderBackButtonImage = (\n props: ImageProps\n): JSX.Element => (\n <View>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </View>\n);\n\nexport const ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderConfig = (\n props: React.PropsWithChildren<ScreenStackHeaderConfigProps>\n): JSX.Element => <View {...props} />;\n\n// @ts-expect-error: search bar props have no common props with View\nexport const SearchBar: React.ComponentType<SearchBarProps> = View;\n\nexport const ScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n> = View;\n\nexport const shouldUseActivityState = true;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useTransitionProgress","_utils","obj","__esModule","default","_extends","assign","bind","target","i","arguments","length","source","apply","ENABLE_SCREENS","enableScreens","shouldEnableScreens","undefined","screensEnabled","enableFreeze","shouldEnableReactFreeze","NativeScreen","React","Component","render","active","activityState","style","enabled","rest","props","createElement","View","hidden","display","Screen","Animated","createAnimatedComponent","InnerScreen","ScreenContext","createContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","Image","resizeMode","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Animated, View, ViewProps, ImageProps, Image } from 'react-native';\nimport {\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n HeaderSubviewTypes,\n SearchBarProps,\n} from './types';\n\nexport * from './types';\nexport { default as useTransitionProgress } from './useTransitionProgress';\nexport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\nlet ENABLE_SCREENS = true;\n\nexport function enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = shouldEnableScreens;\n}\n\nexport function screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// @ts-ignore function stub, freezing logic is located in index.native.tsx\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function enableFreeze(shouldEnableReactFreeze = true): void {\n // noop\n}\n\nexport class NativeScreen extends React.Component<ScreenProps> {\n render(): JSX.Element {\n let {\n active,\n activityState,\n style,\n enabled = ENABLE_SCREENS,\n ...rest\n } = this.props;\n\n if (enabled) {\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx\n }\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={activityState === 0}\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n {...rest}\n />\n );\n }\n\n return <View {...rest} />;\n }\n}\n\nexport const Screen = Animated.createAnimatedComponent(NativeScreen);\n\nexport const InnerScreen = View;\n\nexport const ScreenContext = React.createContext(Screen);\n\nexport const ScreenContainer: React.ComponentType<ScreenContainerProps> = View;\n\nexport const NativeScreenContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const NativeScreenNavigationContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const ScreenStack: React.ComponentType<ScreenStackProps> = View;\n\nexport const FullWindowOverlay = View as React.ComponentType<{\n children: ReactNode;\n}>;\n\nexport const ScreenStackHeaderBackButtonImage = (\n props: ImageProps\n): JSX.Element => (\n <View>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </View>\n);\n\nexport const ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderConfig = (\n props: React.PropsWithChildren<ScreenStackHeaderConfigProps>\n): JSX.Element => <View {...props} />;\n\n// @ts-expect-error: search bar props have no common props with View\nexport const SearchBar: React.ComponentType<SearchBarProps> = View;\n\nexport const ScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n> = View;\n\nexport const shouldUseActivityState = true;\n"],"mappings":"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"}
@@ -391,6 +391,7 @@ module.exports = {
391
391
  shouldUseActivityState,
392
392
  useTransitionProgress: _useTransitionProgress.default,
393
393
  isSearchBarAvailableForCurrentPlatform: _utils.isSearchBarAvailableForCurrentPlatform,
394
+ isNewBackTitleImplementation: _utils.isNewBackTitleImplementation,
394
395
  executeNativeBackPress: _utils.executeNativeBackPress
395
396
  };
396
397
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactFreeze","_package","_TransitionProgressContext","_useTransitionProgress","_utils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","requireNativeComponent","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","createElement","Freeze","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","Animated","Value","ref","_this$props$onCompone","_this$props","onComponentRef","setNativeProps","_this$ref","render","enabled","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","View","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","Image","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","isSearchBarAvailableForCurrentPlatform","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands","useTransitionProgress","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactFreeze","_package","_TransitionProgressContext","_useTransitionProgress","_utils","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","isPlatformSupported","Platform","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","UIManager","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","version","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","requireNativeComponent","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","createElement","Freeze","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","Animated","Value","ref","_this$props$onCompone","_this$props","onComponentRef","setNativeProps","_this$ref","render","enabled","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","View","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","Image","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","isSearchBarAvailableForCurrentPlatform","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands","useTransitionProgress","isNewBackTitleImplementation","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.executeNativeBackPress = executeNativeBackPress;
7
- exports.isSearchBarAvailableForCurrentPlatform = void 0;
7
+ exports.isSearchBarAvailableForCurrentPlatform = exports.isNewBackTitleImplementation = void 0;
8
8
  var _reactNative = require("react-native");
9
9
  const isSearchBarAvailableForCurrentPlatform = ['ios', 'android'].includes(_reactNative.Platform.OS);
10
10
  exports.isSearchBarAvailableForCurrentPlatform = isSearchBarAvailableForCurrentPlatform;
@@ -13,4 +13,11 @@ function executeNativeBackPress() {
13
13
  _reactNative.BackHandler.exitApp();
14
14
  return true;
15
15
  }
16
+
17
+ // Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646
18
+ // react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726
19
+ // To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.
20
+ // See https://github.com/react-navigation/react-navigation/pull/11423 for more context.
21
+ const isNewBackTitleImplementation = true;
22
+ exports.isNewBackTitleImplementation = isNewBackTitleImplementation;
16
23
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","isSearchBarAvailableForCurrentPlatform","includes","Platform","OS","exports","executeNativeBackPress","BackHandler","exitApp"],"sources":["utils.ts"],"sourcesContent":["import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,sCAAsC,GAAG,CACpD,KAAK,EACL,SAAS,CACV,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC;AAACC,OAAA,CAAAJ,sCAAA,GAAAA,sCAAA;AAEjB,SAASK,sBAAsBA,CAAA,EAAG;EACvC;EACAC,wBAAW,CAACC,OAAO,EAAE;EACrB,OAAO,IAAI;AACb"}
1
+ {"version":3,"names":["_reactNative","require","isSearchBarAvailableForCurrentPlatform","includes","Platform","OS","exports","executeNativeBackPress","BackHandler","exitApp","isNewBackTitleImplementation"],"sources":["utils.ts"],"sourcesContent":["import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n\n// Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646\n// react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726\n// To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.\n// See https://github.com/react-navigation/react-navigation/pull/11423 for more context.\nexport const isNewBackTitleImplementation = true;\n"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,sCAAsC,GAAG,CACpD,KAAK,EACL,SAAS,CACV,CAACC,QAAQ,CAACC,qBAAQ,CAACC,EAAE,CAAC;AAACC,OAAA,CAAAJ,sCAAA,GAAAA,sCAAA;AAEjB,SAASK,sBAAsBA,CAAA,EAAG;EACvC;EACAC,wBAAW,CAACC,OAAO,EAAE;EACrB,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACO,MAAMC,4BAA4B,GAAG,IAAI;AAACJ,OAAA,CAAAI,4BAAA,GAAAA,4BAAA"}
@@ -3,7 +3,7 @@ import React from 'react';
3
3
  import { Animated, View, Image } from 'react-native';
4
4
  export * from './types';
5
5
  export { default as useTransitionProgress } from './useTransitionProgress';
6
- export { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils';
6
+ export { isSearchBarAvailableForCurrentPlatform, isNewBackTitleImplementation, executeNativeBackPress } from './utils';
7
7
  let ENABLE_SCREENS = true;
8
8
  export function enableScreens() {
9
9
  let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","View","Image","default","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","ENABLE_SCREENS","enableScreens","shouldEnableScreens","arguments","length","undefined","screensEnabled","enableFreeze","shouldEnableReactFreeze","NativeScreen","Component","render","active","activityState","style","enabled","rest","props","createElement","_extends","hidden","display","Screen","createAnimatedComponent","InnerScreen","ScreenContext","createContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","resizeMode","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Animated, View, ViewProps, ImageProps, Image } from 'react-native';\nimport {\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n HeaderSubviewTypes,\n SearchBarProps,\n} from './types';\n\nexport * from './types';\nexport { default as useTransitionProgress } from './useTransitionProgress';\nexport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\nlet ENABLE_SCREENS = true;\n\nexport function enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = shouldEnableScreens;\n}\n\nexport function screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// @ts-ignore function stub, freezing logic is located in index.native.tsx\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function enableFreeze(shouldEnableReactFreeze = true): void {\n // noop\n}\n\nexport class NativeScreen extends React.Component<ScreenProps> {\n render(): JSX.Element {\n let {\n active,\n activityState,\n style,\n enabled = ENABLE_SCREENS,\n ...rest\n } = this.props;\n\n if (enabled) {\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx\n }\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={activityState === 0}\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n {...rest}\n />\n );\n }\n\n return <View {...rest} />;\n }\n}\n\nexport const Screen = Animated.createAnimatedComponent(NativeScreen);\n\nexport const InnerScreen = View;\n\nexport const ScreenContext = React.createContext(Screen);\n\nexport const ScreenContainer: React.ComponentType<ScreenContainerProps> = View;\n\nexport const NativeScreenContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const NativeScreenNavigationContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const ScreenStack: React.ComponentType<ScreenStackProps> = View;\n\nexport const FullWindowOverlay = View as React.ComponentType<{\n children: ReactNode;\n}>;\n\nexport const ScreenStackHeaderBackButtonImage = (\n props: ImageProps\n): JSX.Element => (\n <View>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </View>\n);\n\nexport const ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderConfig = (\n props: React.PropsWithChildren<ScreenStackHeaderConfigProps>\n): JSX.Element => <View {...props} />;\n\n// @ts-expect-error: search bar props have no common props with View\nexport const SearchBar: React.ComponentType<SearchBarProps> = View;\n\nexport const ScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n> = View;\n\nexport const shouldUseActivityState = true;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Animated","View","Image","default","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","isNewBackTitleImplementation","executeNativeBackPress","ENABLE_SCREENS","enableScreens","shouldEnableScreens","arguments","length","undefined","screensEnabled","enableFreeze","shouldEnableReactFreeze","NativeScreen","Component","render","active","activityState","style","enabled","rest","props","createElement","_extends","hidden","display","Screen","createAnimatedComponent","InnerScreen","ScreenContext","createContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","resizeMode","fadeDuration","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenStackHeaderConfig","SearchBar","ScreenStackHeaderSubview","shouldUseActivityState"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Animated, View, ViewProps, ImageProps, Image } from 'react-native';\nimport {\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n HeaderSubviewTypes,\n SearchBarProps,\n} from './types';\n\nexport * from './types';\nexport { default as useTransitionProgress } from './useTransitionProgress';\nexport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\nlet ENABLE_SCREENS = true;\n\nexport function enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = shouldEnableScreens;\n}\n\nexport function screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\n// @ts-ignore function stub, freezing logic is located in index.native.tsx\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function enableFreeze(shouldEnableReactFreeze = true): void {\n // noop\n}\n\nexport class NativeScreen extends React.Component<ScreenProps> {\n render(): JSX.Element {\n let {\n active,\n activityState,\n style,\n enabled = ENABLE_SCREENS,\n ...rest\n } = this.props;\n\n if (enabled) {\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0; // change taken from index.native.tsx\n }\n return (\n <View\n // @ts-expect-error: hidden exists on web, but not in React Native\n hidden={activityState === 0}\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n {...rest}\n />\n );\n }\n\n return <View {...rest} />;\n }\n}\n\nexport const Screen = Animated.createAnimatedComponent(NativeScreen);\n\nexport const InnerScreen = View;\n\nexport const ScreenContext = React.createContext(Screen);\n\nexport const ScreenContainer: React.ComponentType<ScreenContainerProps> = View;\n\nexport const NativeScreenContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const NativeScreenNavigationContainer: React.ComponentType<ScreenContainerProps> =\n View;\n\nexport const ScreenStack: React.ComponentType<ScreenStackProps> = View;\n\nexport const FullWindowOverlay = View as React.ComponentType<{\n children: ReactNode;\n}>;\n\nexport const ScreenStackHeaderBackButtonImage = (\n props: ImageProps\n): JSX.Element => (\n <View>\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </View>\n);\n\nexport const ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<Omit<SearchBarProps, 'ref'>>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderConfig = (\n props: React.PropsWithChildren<ScreenStackHeaderConfigProps>\n): JSX.Element => <View {...props} />;\n\n// @ts-expect-error: search bar props have no common props with View\nexport const SearchBar: React.ComponentType<SearchBarProps> = View;\n\nexport const ScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n> = View;\n\nexport const shouldUseActivityState = true;\n"],"mappings":"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"}
@@ -9,7 +9,7 @@ import { Freeze } from 'react-freeze';
9
9
  import { version } from 'react-native/package.json';
10
10
  import TransitionProgressContext from './TransitionProgressContext';
11
11
  import useTransitionProgress from './useTransitionProgress';
12
- import { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress } from './utils';
12
+ import { isSearchBarAvailableForCurrentPlatform, isNewBackTitleImplementation, executeNativeBackPress } from './utils';
13
13
 
14
14
  // web implementation is taken from `index.tsx`
15
15
  const isPlatformSupported = Platform.OS === 'ios' || Platform.OS === 'android' || Platform.OS === 'windows';
@@ -390,6 +390,7 @@ module.exports = {
390
390
  shouldUseActivityState,
391
391
  useTransitionProgress,
392
392
  isSearchBarAvailableForCurrentPlatform,
393
+ isNewBackTitleImplementation,
393
394
  executeNativeBackPress
394
395
  };
395
396
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","arguments","length","undefined","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","require","default","NativeScreenContainer","NativeScreenNavigationContainer","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","useState","setImmediate","createElement","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","_defineProperty","Value","ref","_this$props$onCompone","_this$props","onComponentRef","call","setNativeProps","_this$ref","render","enabled","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","_extends","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","value","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Animated","Image","Platform","requireNativeComponent","StyleSheet","UIManager","View","Freeze","version","TransitionProgressContext","useTransitionProgress","isSearchBarAvailableForCurrentPlatform","isNewBackTitleImplementation","executeNativeBackPress","isPlatformSupported","OS","ENABLE_SCREENS","enableScreens","shouldEnableScreens","arguments","length","undefined","getViewManagerConfig","console","error","ENABLE_FREEZE","enableFreeze","shouldEnableReactFreeze","minor","parseInt","split","warn","shouldUseActivityState","screensEnabled","NativeScreenValue","NativeScreenContainerValue","NativeScreenNavigationContainerValue","NativeScreenStack","NativeScreenStackHeaderConfig","NativeScreenStackHeaderSubview","AnimatedNativeScreen","NativeSearchBar","NativeSearchBarCommands","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","require","default","NativeScreenContainer","NativeScreenNavigationContainer","Commands","DelayedFreeze","_ref","freeze","children","freezeState","setFreezeState","useState","setImmediate","createElement","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","_props$descriptor","_props$descriptors","_descriptor$options$f","_descriptor$options","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","constructor","_defineProperty","Value","ref","_this$props$onCompone","_this$props","onComponentRef","call","setNativeProps","_this$ref","render","enabled","_gestureResponseDista","_gestureResponseDista2","_gestureResponseDista3","_gestureResponseDista4","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","handleRef","_ref$viewConfig","_ref$viewConfig$valid","viewConfig","validAttributes","style","display","setRef","_extends","start","end","top","bottom","onTransitionProgress","event","nativeEvent","progress","closing","goingForward","useNativeDriver","Provider","value","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","type","resizeMode","fadeDuration","SearchBar","nativeSearchBarRef","createRef","_callMethodWithRef","method","current","blur","focus","toggleCancelButton","flag","clearText","setText","text","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBarCommands"],"sources":["index.native.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { PropsWithChildren, ReactNode } from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleProp,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native';\nimport { Freeze } from 'react-freeze';\nimport { version } from 'react-native/package.json';\n\nimport TransitionProgressContext from './TransitionProgressContext';\nimport useTransitionProgress from './useTransitionProgress';\nimport {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n SearchBarCommands,\n} from './types';\nimport {\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n} from './utils';\n\n// web implementation is taken from `index.tsx`\nconst isPlatformSupported =\n Platform.OS === 'ios' ||\n Platform.OS === 'android' ||\n Platform.OS === 'windows';\n\nlet ENABLE_SCREENS = isPlatformSupported;\n\nfunction enableScreens(shouldEnableScreens = true): void {\n ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;\n if (ENABLE_SCREENS && !UIManager.getViewManagerConfig('RNSScreen')) {\n console.error(\n `Screen native module hasn't been linked. Please check the react-native-screens README for more details`\n );\n }\n}\n\nlet ENABLE_FREEZE = false;\n\nfunction enableFreeze(shouldEnableReactFreeze = true): void {\n const minor = parseInt(version.split('.')[1]); // eg. takes 66 from '0.66.0'\n\n // react-freeze requires react-native >=0.64, react-native from main is 0.0.0\n if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {\n console.warn(\n 'react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.'\n );\n }\n\n ENABLE_FREEZE = shouldEnableReactFreeze;\n}\n\n// const that tells if the library should use new implementation, will be undefined for older versions\nconst shouldUseActivityState = true;\n\nfunction screensEnabled(): boolean {\n return ENABLE_SCREENS;\n}\n\ntype SearchBarCommandsType = {\n blur: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n focus: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n clearText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>\n ) => void;\n toggleCancelButton: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n flag: boolean\n ) => void;\n setText: (\n viewRef: React.ElementRef<typeof ScreensNativeModules.NativeSearchBar>,\n text: string\n ) => void;\n};\n\n// We initialize these lazily so that importing the module doesn't throw error when not linked\n// This is necessary coz libraries such as React Navigation import the library where it may not be enabled\nlet NativeScreenValue: React.ComponentType<ScreenProps>;\nlet NativeScreenContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenNavigationContainerValue: React.ComponentType<ScreenContainerProps>;\nlet NativeScreenStack: React.ComponentType<ScreenStackProps>;\nlet NativeScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps>;\nlet NativeScreenStackHeaderSubview: React.ComponentType<\n React.PropsWithChildren<ViewProps & { type?: HeaderSubviewTypes }>\n>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\n\nlet NativeSearchBar: React.ComponentType<SearchBarProps> &\n typeof NativeSearchBarCommands;\nlet NativeSearchBarCommands: SearchBarCommandsType;\n\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || require('./fabric/ScreenNativeComponent').default;\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n require('./fabric/ScreenContainerNativeComponent').default;\n return NativeScreenContainerValue;\n },\n\n get NativeScreenNavigationContainer() {\n NativeScreenNavigationContainerValue =\n NativeScreenNavigationContainerValue ||\n (Platform.OS === 'ios'\n ? requireNativeComponent('RNSScreenNavigationContainer')\n : this.NativeScreenContainer);\n return NativeScreenNavigationContainerValue;\n },\n\n get NativeScreenStack() {\n NativeScreenStack =\n NativeScreenStack || requireNativeComponent('RNSScreenStack');\n return NativeScreenStack;\n },\n\n get NativeScreenStackHeaderConfig() {\n NativeScreenStackHeaderConfig =\n NativeScreenStackHeaderConfig ||\n requireNativeComponent('RNSScreenStackHeaderConfig');\n return NativeScreenStackHeaderConfig;\n },\n\n get NativeScreenStackHeaderSubview() {\n NativeScreenStackHeaderSubview =\n NativeScreenStackHeaderSubview ||\n requireNativeComponent('RNSScreenStackHeaderSubview');\n return NativeScreenStackHeaderSubview;\n },\n\n get NativeSearchBar() {\n NativeSearchBar =\n NativeSearchBar || require('./fabric/SearchBarNativeComponent').default;\n return NativeSearchBar;\n },\n get NativeSearchBarCommands() {\n NativeSearchBarCommands =\n NativeSearchBarCommands ||\n require('./fabric/SearchBarNativeComponent').Commands;\n return NativeSearchBarCommands;\n },\n\n get NativeFullWindowOverlay() {\n NativeFullWindowOverlay =\n NativeFullWindowOverlay || requireNativeComponent('RNSFullWindowOverlay');\n return NativeFullWindowOverlay;\n },\n};\n\ninterface FreezeWrapperProps {\n freeze: boolean;\n children: React.ReactNode;\n}\n\n// This component allows one more render before freezing the screen.\n// Allows activityState to reach the native side and useIsFocused to work correctly.\nfunction DelayedFreeze({ freeze, children }: FreezeWrapperProps) {\n // flag used for determining whether freeze should be enabled\n const [freezeState, setFreezeState] = React.useState(false);\n\n if (freeze !== freezeState) {\n // setImmediate is executed at the end of the JS execution block.\n // Used here for changing the state right after the render.\n setImmediate(() => {\n setFreezeState(freeze);\n });\n }\n\n return <Freeze freeze={freeze ? freezeState : false}>{children}</Freeze>;\n}\n\nfunction ScreenStack(props: ScreenStackProps) {\n const { children, ...rest } = props;\n const size = React.Children.count(children);\n // freezes all screens except the top one\n const childrenWithFreeze = React.Children.map(children, (child, index) => {\n // @ts-expect-error it's either SceneView in v6 or RouteView in v5\n const { props, key } = child;\n const descriptor = props?.descriptor ?? props?.descriptors?.[key];\n const freezeEnabled = descriptor?.options?.freezeOnBlur ?? ENABLE_FREEZE;\n\n return (\n <DelayedFreeze freeze={freezeEnabled && size - index > 1}>\n {child}\n </DelayedFreeze>\n );\n });\n\n return (\n <ScreensNativeModules.NativeScreenStack {...rest}>\n {childrenWithFreeze}\n </ScreensNativeModules.NativeScreenStack>\n );\n}\n\n// Incomplete type, all accessible properties available at:\n// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js\ninterface ViewConfig extends View {\n viewConfig: {\n validAttributes: {\n style: {\n display: boolean;\n };\n };\n };\n}\n\nclass InnerScreen extends React.Component<ScreenProps> {\n private ref: React.ElementRef<typeof View> | null = null;\n private closing = new Animated.Value(0);\n private progress = new Animated.Value(0);\n private goingForward = new Animated.Value(0);\n\n setNativeProps(props: ScreenProps): void {\n this.ref?.setNativeProps(props);\n }\n\n setRef = (ref: React.ElementRef<typeof View> | null): void => {\n this.ref = ref;\n this.props.onComponentRef?.(ref);\n };\n\n render() {\n const {\n enabled = ENABLE_SCREENS,\n freezeOnBlur = ENABLE_FREEZE,\n ...rest\n } = this.props;\n\n if (enabled && isPlatformSupported) {\n AnimatedNativeScreen =\n AnimatedNativeScreen ||\n Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);\n\n let {\n // Filter out active prop in this case because it is unused and\n // can cause problems depending on react-native version:\n // https://github.com/react-navigation/react-navigation/issues/4886\n active,\n activityState,\n children,\n isNativeStack,\n gestureResponseDistance,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n console.warn(\n 'It appears that you are using old version of react-navigation library. Please update @react-navigation/bottom-tabs, @react-navigation/stack and @react-navigation/drawer to version 5.10.0 or above to take full advantage of new functionality added to react-native-screens'\n );\n activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition\n }\n\n const handleRef = (ref: ViewConfig) => {\n if (ref?.viewConfig?.validAttributes?.style) {\n ref.viewConfig.validAttributes.style = {\n ...ref.viewConfig.validAttributes.style,\n display: false,\n };\n this.setRef(ref);\n }\n };\n\n return (\n <DelayedFreeze freeze={freezeOnBlur && activityState === 0}>\n <AnimatedNativeScreen\n {...props}\n activityState={activityState}\n gestureResponseDistance={{\n start: gestureResponseDistance?.start ?? -1,\n end: gestureResponseDistance?.end ?? -1,\n top: gestureResponseDistance?.top ?? -1,\n bottom: gestureResponseDistance?.bottom ?? -1,\n }}\n // This prevents showing blank screen when navigating between multiple screens with freezing\n // https://github.com/software-mansion/react-native-screens/pull/1208\n ref={handleRef}\n onTransitionProgress={\n !isNativeStack\n ? undefined\n : Animated.event(\n [\n {\n nativeEvent: {\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n },\n },\n ],\n { useNativeDriver: true }\n )\n }\n >\n {!isNativeStack ? ( // see comment of this prop in types.tsx for information why it is needed\n children\n ) : (\n <TransitionProgressContext.Provider\n value={{\n progress: this.progress,\n closing: this.closing,\n goingForward: this.goingForward,\n }}\n >\n {children}\n </TransitionProgressContext.Provider>\n )}\n </AnimatedNativeScreen>\n </DelayedFreeze>\n );\n } else {\n // same reason as above\n let {\n active,\n activityState,\n style,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onComponentRef,\n ...props\n } = rest;\n\n if (active !== undefined && activityState === undefined) {\n activityState = active !== 0 ? 2 : 0;\n }\n return (\n <Animated.View\n style={[style, { display: activityState !== 0 ? 'flex' : 'none' }]}\n ref={this.setRef}\n {...props}\n />\n );\n }\n }\n}\n\nfunction ScreenContainer(props: ScreenContainerProps) {\n const { enabled = ENABLE_SCREENS, hasTwoStates, ...rest } = props;\n\n if (enabled && isPlatformSupported) {\n if (hasTwoStates) {\n return <ScreensNativeModules.NativeScreenNavigationContainer {...rest} />;\n }\n return <ScreensNativeModules.NativeScreenContainer {...rest} />;\n }\n return <View {...rest} />;\n}\n\nfunction FullWindowOverlay(props: { children: ReactNode }) {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return <View {...props} />;\n }\n return (\n <ScreensNativeModules.NativeFullWindowOverlay\n style={{ position: 'absolute', width: '100%', height: '100%' }}\n >\n {props.children}\n </ScreensNativeModules.NativeFullWindowOverlay>\n );\n}\n\nconst styles = StyleSheet.create({\n headerSubview: {\n position: 'absolute',\n top: 0,\n right: 0,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst ScreenStackHeaderBackButtonImage = (props: ImageProps): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n type=\"back\"\n style={styles.headerSubview}\n >\n <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\n);\n\nclass SearchBar extends React.Component<SearchBarProps> {\n nativeSearchBarRef: React.RefObject<SearchBarCommands>;\n\n constructor(props: SearchBarProps) {\n super(props);\n this.nativeSearchBarRef = React.createRef();\n }\n\n _callMethodWithRef(method: (ref: SearchBarCommands) => void) {\n const ref = this.nativeSearchBarRef.current;\n if (ref) {\n method(ref);\n } else {\n console.warn(\n 'Reference to native search bar component has not been updated yet'\n );\n }\n }\n\n blur() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.blur(ref)\n );\n }\n\n focus() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.focus(ref)\n );\n }\n\n toggleCancelButton(flag: boolean) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.toggleCancelButton(ref, flag)\n );\n }\n\n clearText() {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.clearText(ref)\n );\n }\n\n setText(text: string) {\n this._callMethodWithRef((ref) =>\n ScreensNativeModules.NativeSearchBarCommands.setText(ref, text)\n );\n }\n\n render() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View as any as ReactNode;\n }\n\n return (\n <ScreensNativeModules.NativeSearchBar\n {...this.props}\n ref={this.nativeSearchBarRef}\n />\n );\n }\n}\n\nconst ScreenStackHeaderRightView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"right\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderLeftView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"left\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderCenterView = (\n props: React.PropsWithChildren<ViewProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"center\"\n style={styles.headerSubview}\n />\n);\n\nconst ScreenStackHeaderSearchBarView = (\n props: React.PropsWithChildren<SearchBarProps>\n): JSX.Element => (\n <ScreensNativeModules.NativeScreenStackHeaderSubview\n {...props}\n type=\"searchBar\"\n style={styles.headerSubview}\n />\n);\n\nexport type {\n StackPresentationTypes,\n StackAnimationTypes,\n BlurEffectTypes,\n ScreenReplaceTypes,\n ScreenOrientationTypes,\n HeaderSubviewTypes,\n ScreenProps,\n ScreenContainerProps,\n ScreenStackProps,\n ScreenStackHeaderConfigProps,\n SearchBarProps,\n};\n\n// context to be used when the user wants to use enhanced implementation\n// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)\nconst ScreenContext = React.createContext(InnerScreen);\n\nclass Screen extends React.Component<ScreenProps> {\n static contextType = ScreenContext;\n\n render() {\n const ScreenWrapper = (this.context || InnerScreen) as React.ElementType;\n return <ScreenWrapper {...this.props} />;\n }\n}\n\nmodule.exports = {\n // these are classes so they are not evaluated until used\n // so no need to use getters for them\n Screen,\n ScreenContainer,\n ScreenContext,\n ScreenStack,\n InnerScreen,\n SearchBar,\n FullWindowOverlay,\n\n get NativeScreen() {\n return ScreensNativeModules.NativeScreen;\n },\n\n get NativeScreenContainer() {\n return ScreensNativeModules.NativeScreenContainer;\n },\n\n get NativeScreenNavigationContainer() {\n return ScreensNativeModules.NativeScreenNavigationContainer;\n },\n\n get ScreenStackHeaderConfig() {\n return ScreensNativeModules.NativeScreenStackHeaderConfig;\n },\n get ScreenStackHeaderSubview() {\n return ScreensNativeModules.NativeScreenStackHeaderSubview;\n },\n get SearchBarCommands() {\n return ScreensNativeModules.NativeSearchBarCommands;\n },\n // these are functions and will not be evaluated until used\n // so no need to use getters for them\n ScreenStackHeaderBackButtonImage,\n ScreenStackHeaderRightView,\n ScreenStackHeaderLeftView,\n ScreenStackHeaderCenterView,\n ScreenStackHeaderSearchBarView,\n\n enableScreens,\n enableFreeze,\n screensEnabled,\n shouldUseActivityState,\n useTransitionProgress,\n\n isSearchBarAvailableForCurrentPlatform,\n isNewBackTitleImplementation,\n executeNativeBackPress,\n};\n"],"mappings":"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"}
@@ -5,4 +5,10 @@ export function executeNativeBackPress() {
5
5
  BackHandler.exitApp();
6
6
  return true;
7
7
  }
8
+
9
+ // Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646
10
+ // react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726
11
+ // To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.
12
+ // See https://github.com/react-navigation/react-navigation/pull/11423 for more context.
13
+ export const isNewBackTitleImplementation = true;
8
14
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BackHandler","Platform","isSearchBarAvailableForCurrentPlatform","includes","OS","executeNativeBackPress","exitApp"],"sources":["utils.ts"],"sourcesContent":["import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,OAAO,MAAMC,sCAAsC,GAAG,CACpD,KAAK,EACL,SAAS,CACV,CAACC,QAAQ,CAACF,QAAQ,CAACG,EAAE,CAAC;AAEvB,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC;EACAL,WAAW,CAACM,OAAO,EAAE;EACrB,OAAO,IAAI;AACb"}
1
+ {"version":3,"names":["BackHandler","Platform","isSearchBarAvailableForCurrentPlatform","includes","OS","executeNativeBackPress","exitApp","isNewBackTitleImplementation"],"sources":["utils.ts"],"sourcesContent":["import { BackHandler, Platform } from 'react-native';\n\nexport const isSearchBarAvailableForCurrentPlatform = [\n 'ios',\n 'android',\n].includes(Platform.OS);\n\nexport function executeNativeBackPress() {\n // This function invokes the native back press event\n BackHandler.exitApp();\n return true;\n}\n\n// Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646\n// react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726\n// To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.\n// See https://github.com/react-navigation/react-navigation/pull/11423 for more context.\nexport const isNewBackTitleImplementation = true;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,OAAO,MAAMC,sCAAsC,GAAG,CACpD,KAAK,EACL,SAAS,CACV,CAACC,QAAQ,CAACF,QAAQ,CAACG,EAAE,CAAC;AAEvB,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACvC;EACAL,WAAW,CAACM,OAAO,EAAE;EACrB,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,GAAG,IAAI"}
@@ -3,7 +3,7 @@ import { Animated, View, ViewProps, ImageProps } from 'react-native';
3
3
  import { ScreenProps, ScreenContainerProps, ScreenStackProps, ScreenStackHeaderConfigProps, HeaderSubviewTypes, SearchBarProps } from './types';
4
4
  export * from './types';
5
5
  export { default as useTransitionProgress } from './useTransitionProgress';
6
- export { isSearchBarAvailableForCurrentPlatform, executeNativeBackPress, } from './utils';
6
+ export { isSearchBarAvailableForCurrentPlatform, isNewBackTitleImplementation, executeNativeBackPress, } from './utils';
7
7
  export declare function enableScreens(shouldEnableScreens?: boolean): void;
8
8
  export declare function screensEnabled(): boolean;
9
9
  export declare function enableFreeze(shouldEnableReactFreeze?: boolean): void;
@@ -1,2 +1,3 @@
1
1
  export declare const isSearchBarAvailableForCurrentPlatform: boolean;
2
2
  export declare function executeNativeBackPress(): boolean;
3
+ export declare const isNewBackTitleImplementation = true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screens",
3
- "version": "3.21.0",
3
+ "version": "3.21.1",
4
4
  "description": "Native navigation primitives for your React Native app.",
5
5
  "scripts": {
6
6
  "check-types": "tsc --noEmit",
@@ -34,6 +34,7 @@ import {
34
34
  } from './types';
35
35
  import {
36
36
  isSearchBarAvailableForCurrentPlatform,
37
+ isNewBackTitleImplementation,
37
38
  executeNativeBackPress,
38
39
  } from './utils';
39
40
 
@@ -592,5 +593,6 @@ module.exports = {
592
593
  useTransitionProgress,
593
594
 
594
595
  isSearchBarAvailableForCurrentPlatform,
596
+ isNewBackTitleImplementation,
595
597
  executeNativeBackPress,
596
598
  };
package/src/index.tsx CHANGED
@@ -13,6 +13,7 @@ export * from './types';
13
13
  export { default as useTransitionProgress } from './useTransitionProgress';
14
14
  export {
15
15
  isSearchBarAvailableForCurrentPlatform,
16
+ isNewBackTitleImplementation,
16
17
  executeNativeBackPress,
17
18
  } from './utils';
18
19
 
package/src/utils.ts CHANGED
@@ -10,3 +10,9 @@ export function executeNativeBackPress() {
10
10
  BackHandler.exitApp();
11
11
  return true;
12
12
  }
13
+
14
+ // Because of a bug introduced in https://github.com/software-mansion/react-native-screens/pull/1646
15
+ // react-native-screens v3.21 changed how header's backTitle handles whitespace strings in https://github.com/software-mansion/react-native-screens/pull/1726
16
+ // To allow for backwards compatibility in @react-navigation/native-stack we need a way to check if this version or newer is used.
17
+ // See https://github.com/react-navigation/react-navigation/pull/11423 for more context.
18
+ export const isNewBackTitleImplementation = true;
@@ -1,7 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Workspace
3
- version = "1.0">
4
- <FileRef
5
- location = "self:">
6
- </FileRef>
7
- </Workspace>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>IDEDidComputeMac32BitWarning</key>
6
- <true/>
7
- </dict>
8
- </plist>
@@ -1,19 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>RNScreens-tvOS.xcscheme_^#shared#^_</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>0</integer>
11
- </dict>
12
- <key>RNScreens.xcscheme_^#shared#^_</key>
13
- <dict>
14
- <key>orderHint</key>
15
- <integer>1</integer>
16
- </dict>
17
- </dict>
18
- </dict>
19
- </plist>