react-native-screens 3.18.2 → 3.20.0
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 +30 -38
- package/android/build.gradle +1 -5
- package/ios/RNSFullWindowOverlay.mm +32 -0
- package/ios/RNSScreen.h +3 -2
- package/ios/RNSScreen.mm +34 -2
- package/ios/RNSScreenStackHeaderConfig.mm +17 -1
- package/lib/commonjs/TransitionProgressContext.js +2 -7
- package/lib/commonjs/TransitionProgressContext.js.map +1 -1
- package/lib/commonjs/createNativeStackNavigator.js +29 -76
- package/lib/commonjs/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +0 -5
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +2 -10
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +2 -10
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +0 -5
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +0 -7
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/commonjs/index.js +21 -45
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.native.js +46 -104
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/index.js +6 -11
- package/lib/commonjs/native-stack/index.js.map +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +18 -25
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/native-stack/types.js +4 -0
- package/lib/commonjs/native-stack/types.js.map +1 -1
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +2 -6
- package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +11 -19
- package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +0 -7
- package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +7 -18
- package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js +2 -10
- package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/commonjs/native-stack/views/FontProcessor.js +1 -6
- package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/commonjs/native-stack/views/HeaderConfig.js +46 -50
- package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +32 -58
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +11 -21
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreen.js +3 -10
- package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +6 -20
- package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +2 -7
- package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/commonjs/reanimated/index.js +0 -3
- package/lib/commonjs/reanimated/index.js.map +1 -1
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +2 -10
- package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/commonjs/types.js +4 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useTransitionProgress.js +2 -10
- package/lib/commonjs/useTransitionProgress.js.map +1 -1
- package/lib/commonjs/utils.js +0 -4
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/TransitionProgressContext.js.map +1 -1
- package/lib/module/createNativeStackNavigator.js +29 -67
- package/lib/module/createNativeStackNavigator.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +0 -1
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js +0 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBarNativeComponent.js +0 -1
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -1
- package/lib/module/index.js +13 -11
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.native.js +48 -94
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/index.js +3 -2
- package/lib/module/native-stack/index.js.map +1 -1
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js +16 -16
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/native-stack/types.js +1 -1
- package/lib/module/native-stack/types.js.map +1 -1
- package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -1
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +8 -7
- package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -1
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +0 -4
- package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/utils/useBackPressSubscription.js +7 -8
- package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -1
- package/lib/module/native-stack/utils/useHeaderHeight.js +0 -2
- package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -1
- package/lib/module/native-stack/views/FontProcessor.js +0 -3
- package/lib/module/native-stack/views/FontProcessor.js.map +1 -1
- package/lib/module/native-stack/views/HeaderConfig.js +44 -39
- package/lib/module/native-stack/views/HeaderConfig.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +32 -42
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js +12 -9
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreen.js +5 -4
- package/lib/module/reanimated/ReanimatedScreen.js.map +1 -1
- package/lib/module/reanimated/ReanimatedScreenProvider.js +6 -15
- package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -1
- package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +2 -1
- package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -1
- package/lib/module/reanimated/index.js.map +1 -1
- package/lib/module/reanimated/useReanimatedTransitionProgress.js +0 -2
- package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -1
- package/lib/module/types.js +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/useTransitionProgress.js +0 -2
- package/lib/module/useTransitionProgress.js.map +1 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/TransitionProgressContext.d.ts +1 -1
- package/lib/typescript/createNativeStackNavigator.d.ts +5 -5
- package/lib/typescript/index.d.ts +4 -2
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +3 -2
- package/lib/typescript/native-stack/types.d.ts +9 -9
- package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +1 -1
- package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +1 -1
- package/lib/typescript/native-stack/views/HeaderConfig.d.ts +2 -1
- package/lib/typescript/native-stack/views/NativeStackView.d.ts +2 -1
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +1 -1
- package/lib/typescript/types.d.ts +10 -9
- package/package.json +10 -2
- package/src/createNativeStackNavigator.tsx +4 -2
- package/src/index.native.tsx +32 -16
- package/src/index.tsx +13 -8
- package/src/native-stack/types.tsx +4 -5
- package/src/native-stack/views/HeaderConfig.tsx +8 -10
- package/src/native-stack/views/NativeStackView.tsx +8 -4
- package/src/reanimated/ReanimatedNativeStackScreen.tsx +5 -3
- package/src/reanimated/ReanimatedScreen.tsx +1 -1
- package/android/src/main/java/com/swmansion/rnscreens/LifecycleHelper.kt +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["ENABLE_SCREENS","enableScreens","shouldEnableScreens","screensEnabled","enableFreeze","shouldEnableReactFreeze","NativeScreen","React","Component","render","active","activityState","style","enabled","rest","props","undefined","display","Screen","Animated","createAnimatedComponent","InnerScreen","View","ScreenContext","createContext","ScreenContainer","NativeScreenContainer","NativeScreenNavigationContainer","ScreenStack","FullWindowOverlay","ScreenStackHeaderBackButtonImage","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<SearchBarProps>\n): JSX.Element => <View {...props} />;\n\nexport const ScreenStackHeaderConfig: React.ComponentType<ScreenStackHeaderConfigProps> =\n View;\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAUA;AAAA;EAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AACA;AAGiB;AAAA;AAEjB,IAAIA,cAAc,GAAG,IAAI;AAElB,SAASC,aAAa,GAAmC;EAAA,IAAlCC,mBAAmB,uEAAG,IAAI;EACtDF,cAAc,GAAGE,mBAAmB;AACtC;AAEO,SAASC,cAAc,GAAY;EACxC,OAAOH,cAAc;AACvB;;AAEA;AACA;AACO,SAASI,YAAY,GAAuC;EAAA,IAAtCC,uBAAuB,uEAAG,IAAI;AAE3D,CAAC,CADC;;AAGK,MAAMC,YAAY,SAASC,cAAK,CAACC,SAAS,CAAc;EAC7DC,MAAM,GAAgB;IACpB,IAAI;MACFC,MAAM;MACNC,aAAa;MACbC,KAAK;MACLC,OAAO,GAAGb,cAAc;MACxB,GAAGc;IACL,CAAC,GAAG,IAAI,CAACC,KAAK;IAEd,IAAIF,OAAO,EAAE;MACX,IAAIH,MAAM,KAAKM,SAAS,IAAIL,aAAa,KAAKK,SAAS,EAAE;QACvDL,aAAa,GAAGD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;MACxC;;MACA,oBACE,6BAAC;MACC;MAAA;QACA,MAAM,EAAEC,aAAa,KAAK,CAAE;QAC5B,KAAK,EAAE,CAACC,KAAK,EAAE;UAAEK,OAAO,EAAEN,aAAa,KAAK,CAAC,GAAG,MAAM,GAAG;QAAO,CAAC;MAAE,GAC/DG,IAAI,EACR;IAEN;IAEA,oBAAO,6BAAC,iBAAI,EAAKA,IAAI,CAAI;EAC3B;AACF;AAAC;AAEM,MAAMI,MAAM,GAAGC,qBAAQ,CAACC,uBAAuB,CAACd,YAAY,CAAC;AAAC;AAE9D,MAAMe,WAAW,GAAGC,iBAAI;AAAC;AAEzB,MAAMC,aAAa,gBAAGhB,cAAK,CAACiB,aAAa,CAACN,MAAM,CAAC;AAAC;AAElD,MAAMO,eAA0D,GAAGH,iBAAI;AAAC;AAExE,MAAMI,qBAAgE,GAC3EJ,iBAAI;AAAC;AAEA,MAAMK,+BAA0E,GACrFL,iBAAI;AAAC;AAEA,MAAMM,WAAkD,GAAGN,iBAAI;AAAC;AAEhE,MAAMO,iBAAiB,GAAGP,iBAE/B;AAAC;AAEI,MAAMQ,gCAAgC,GAC3Cf,KAAiB,iBAEjB,6BAAC,iBAAI,qBACH,6BAAC,kBAAK;EAAC,UAAU,EAAC,QAAQ;EAAC,YAAY,EAAE;AAAE,GAAKA,KAAK,EAAI,CAE5D;AAAC;AAEK,MAAMgB,0BAA0B,GACrChB,KAAyC,iBACzB,6BAAC,iBAAI,EAAKA,KAAK,CAAI;AAAC;AAE/B,MAAMiB,yBAAyB,GACpCjB,KAAyC,iBACzB,6BAAC,iBAAI,EAAKA,KAAK,CAAI;AAAC;AAE/B,MAAMkB,2BAA2B,GACtClB,KAAyC,iBACzB,6BAAC,iBAAI,EAAKA,KAAK,CAAI;AAAC;AAE/B,MAAMmB,8BAA8B,GACzCnB,KAA8C,iBAC9B,6BAAC,iBAAI,EAAKA,KAAK,CAAI;AAAC;AAE/B,MAAMoB,uBAA0E,GACrFb,iBAAI;;AAEN;AAAA;AACO,MAAMc,SAA8C,GAAGd,iBAAI;AAAC;AAE5D,MAAMe,wBAEZ,GAAGf,iBAAI;AAAC;AAEF,MAAMgB,sBAAsB,GAAG,IAAI;AAAC"}
|
|
@@ -1,59 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _react = _interopRequireDefault(require("react"));
|
|
4
|
-
|
|
5
4
|
var _reactNative = require("react-native");
|
|
6
|
-
|
|
7
5
|
var _reactFreeze = require("react-freeze");
|
|
8
|
-
|
|
9
6
|
var _package = require("react-native/package.json");
|
|
10
|
-
|
|
11
7
|
var _TransitionProgressContext = _interopRequireDefault(require("./TransitionProgressContext"));
|
|
12
|
-
|
|
13
8
|
var _useTransitionProgress = _interopRequireDefault(require("./useTransitionProgress"));
|
|
14
|
-
|
|
15
9
|
var _utils = require("./utils");
|
|
16
|
-
|
|
17
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
function
|
|
22
|
-
|
|
11
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
12
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
14
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
23
15
|
// web implementation is taken from `index.tsx`
|
|
24
16
|
const isPlatformSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android' || _reactNative.Platform.OS === 'windows';
|
|
25
17
|
let ENABLE_SCREENS = isPlatformSupported;
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
function enableScreens() {
|
|
19
|
+
let shouldEnableScreens = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
28
20
|
ENABLE_SCREENS = isPlatformSupported && shouldEnableScreens;
|
|
29
|
-
|
|
30
21
|
if (ENABLE_SCREENS && !_reactNative.UIManager.getViewManagerConfig('RNSScreen')) {
|
|
31
22
|
console.error(`Screen native module hasn't been linked. Please check the react-native-screens README for more details`);
|
|
32
23
|
}
|
|
33
24
|
}
|
|
34
|
-
|
|
35
25
|
let ENABLE_FREEZE = false;
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
function enableFreeze() {
|
|
27
|
+
let shouldEnableReactFreeze = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
38
28
|
const minor = parseInt(_package.version.split('.')[1]); // eg. takes 66 from '0.66.0'
|
|
39
|
-
// react-freeze requires react-native >=0.64, react-native from main is 0.0.0
|
|
40
29
|
|
|
30
|
+
// react-freeze requires react-native >=0.64, react-native from main is 0.0.0
|
|
41
31
|
if (!(minor === 0 || minor >= 64) && shouldEnableReactFreeze) {
|
|
42
32
|
console.warn('react-freeze library requires at least react-native 0.64. Please upgrade your react-native version in order to use this feature.');
|
|
43
33
|
}
|
|
44
|
-
|
|
45
34
|
ENABLE_FREEZE = shouldEnableReactFreeze;
|
|
46
|
-
}
|
|
47
|
-
|
|
35
|
+
}
|
|
48
36
|
|
|
37
|
+
// const that tells if the library should use new implementation, will be undefined for older versions
|
|
49
38
|
const shouldUseActivityState = true;
|
|
50
|
-
|
|
51
39
|
function screensEnabled() {
|
|
52
40
|
return ENABLE_SCREENS;
|
|
53
|
-
}
|
|
54
|
-
// This is necessary coz libraries such as React Navigation import the library where it may not be enabled
|
|
55
|
-
|
|
41
|
+
}
|
|
56
42
|
|
|
43
|
+
// We initialize these lazily so that importing the module doesn't throw error when not linked
|
|
44
|
+
// This is necessary coz libraries such as React Navigation import the library where it may not be enabled
|
|
57
45
|
let NativeScreenValue;
|
|
58
46
|
let NativeScreenContainerValue;
|
|
59
47
|
let NativeScreenNavigationContainerValue;
|
|
@@ -68,53 +56,44 @@ const ScreensNativeModules = {
|
|
|
68
56
|
NativeScreenValue = NativeScreenValue || (0, _reactNative.requireNativeComponent)('RNSScreen');
|
|
69
57
|
return NativeScreenValue;
|
|
70
58
|
},
|
|
71
|
-
|
|
72
59
|
get NativeScreenContainer() {
|
|
73
60
|
NativeScreenContainerValue = NativeScreenContainerValue || (0, _reactNative.requireNativeComponent)('RNSScreenContainer');
|
|
74
61
|
return NativeScreenContainerValue;
|
|
75
62
|
},
|
|
76
|
-
|
|
77
63
|
get NativeScreenNavigationContainer() {
|
|
78
64
|
NativeScreenNavigationContainerValue = NativeScreenNavigationContainerValue || (_reactNative.Platform.OS === 'ios' ? (0, _reactNative.requireNativeComponent)('RNSScreenNavigationContainer') : this.NativeScreenContainer);
|
|
79
65
|
return NativeScreenNavigationContainerValue;
|
|
80
66
|
},
|
|
81
|
-
|
|
82
67
|
get NativeScreenStack() {
|
|
83
68
|
NativeScreenStack = NativeScreenStack || (0, _reactNative.requireNativeComponent)('RNSScreenStack');
|
|
84
69
|
return NativeScreenStack;
|
|
85
70
|
},
|
|
86
|
-
|
|
87
71
|
get NativeScreenStackHeaderConfig() {
|
|
88
72
|
NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderConfig');
|
|
89
73
|
return NativeScreenStackHeaderConfig;
|
|
90
74
|
},
|
|
91
|
-
|
|
92
75
|
get NativeScreenStackHeaderSubview() {
|
|
93
76
|
NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderSubview');
|
|
94
77
|
return NativeScreenStackHeaderSubview;
|
|
95
78
|
},
|
|
96
|
-
|
|
97
79
|
get NativeSearchBar() {
|
|
98
80
|
NativeSearchBar = NativeSearchBar || (0, _reactNative.requireNativeComponent)('RNSSearchBar');
|
|
99
81
|
return NativeSearchBar;
|
|
100
82
|
},
|
|
101
|
-
|
|
102
83
|
get NativeFullWindowOverlay() {
|
|
103
84
|
NativeFullWindowOverlay = NativeFullWindowOverlay || (0, _reactNative.requireNativeComponent)('RNSFullWindowOverlay');
|
|
104
85
|
return NativeFullWindowOverlay;
|
|
105
86
|
}
|
|
106
|
-
|
|
107
87
|
};
|
|
108
|
-
|
|
109
88
|
// This component allows one more render before freezing the screen.
|
|
110
89
|
// Allows activityState to reach the native side and useIsFocused to work correctly.
|
|
111
|
-
function DelayedFreeze({
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
90
|
+
function DelayedFreeze(_ref) {
|
|
91
|
+
let {
|
|
92
|
+
freeze,
|
|
93
|
+
children
|
|
94
|
+
} = _ref;
|
|
115
95
|
// flag used for determining whether freeze should be enabled
|
|
116
96
|
const [freezeState, setFreezeState] = _react.default.useState(false);
|
|
117
|
-
|
|
118
97
|
if (freeze !== freezeState) {
|
|
119
98
|
// setImmediate is executed at the end of the JS execution block.
|
|
120
99
|
// Used here for changing the state right after the render.
|
|
@@ -122,24 +101,19 @@ function DelayedFreeze({
|
|
|
122
101
|
setFreezeState(freeze);
|
|
123
102
|
});
|
|
124
103
|
}
|
|
125
|
-
|
|
126
104
|
return /*#__PURE__*/_react.default.createElement(_reactFreeze.Freeze, {
|
|
127
105
|
freeze: freeze ? freezeState : false
|
|
128
106
|
}, children);
|
|
129
107
|
}
|
|
130
|
-
|
|
131
108
|
function ScreenStack(props) {
|
|
132
109
|
const {
|
|
133
110
|
children,
|
|
134
111
|
...rest
|
|
135
112
|
} = props;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
113
|
+
const size = _react.default.Children.count(children);
|
|
114
|
+
// freezes all screens except the top one
|
|
140
115
|
const childrenWithFreeze = _react.default.Children.map(children, (child, index) => {
|
|
141
116
|
var _props$descriptor, _props$descriptors, _descriptor$options$f, _descriptor$options;
|
|
142
|
-
|
|
143
117
|
// @ts-expect-error it's either SceneView in v6 or RouteView in v5
|
|
144
118
|
const {
|
|
145
119
|
props,
|
|
@@ -151,48 +125,37 @@ function ScreenStack(props) {
|
|
|
151
125
|
freeze: freezeEnabled && size - index > 1
|
|
152
126
|
}, child);
|
|
153
127
|
});
|
|
154
|
-
|
|
155
128
|
return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStack, rest, childrenWithFreeze);
|
|
156
|
-
}
|
|
157
|
-
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
129
|
+
}
|
|
158
130
|
|
|
131
|
+
// Incomplete type, all accessible properties available at:
|
|
132
|
+
// react-native/Libraries/Components/View/ReactNativeViewViewConfig.js
|
|
159
133
|
|
|
160
134
|
class InnerScreen extends _react.default.Component {
|
|
161
|
-
constructor(
|
|
162
|
-
super(...
|
|
163
|
-
|
|
135
|
+
constructor() {
|
|
136
|
+
super(...arguments);
|
|
164
137
|
_defineProperty(this, "ref", null);
|
|
165
|
-
|
|
166
138
|
_defineProperty(this, "closing", new _reactNative.Animated.Value(0));
|
|
167
|
-
|
|
168
139
|
_defineProperty(this, "progress", new _reactNative.Animated.Value(0));
|
|
169
|
-
|
|
170
140
|
_defineProperty(this, "goingForward", new _reactNative.Animated.Value(0));
|
|
171
|
-
|
|
172
141
|
_defineProperty(this, "setRef", ref => {
|
|
173
142
|
var _this$props$onCompone, _this$props;
|
|
174
|
-
|
|
175
143
|
this.ref = ref;
|
|
176
144
|
(_this$props$onCompone = (_this$props = this.props).onComponentRef) === null || _this$props$onCompone === void 0 ? void 0 : _this$props$onCompone.call(_this$props, ref);
|
|
177
145
|
});
|
|
178
146
|
}
|
|
179
|
-
|
|
180
147
|
setNativeProps(props) {
|
|
181
148
|
var _this$ref;
|
|
182
|
-
|
|
183
149
|
(_this$ref = this.ref) === null || _this$ref === void 0 ? void 0 : _this$ref.setNativeProps(props);
|
|
184
150
|
}
|
|
185
|
-
|
|
186
151
|
render() {
|
|
187
152
|
const {
|
|
188
153
|
enabled = ENABLE_SCREENS,
|
|
189
154
|
freezeOnBlur = ENABLE_FREEZE,
|
|
190
155
|
...rest
|
|
191
156
|
} = this.props;
|
|
192
|
-
|
|
193
157
|
if (enabled && isPlatformSupported) {
|
|
194
158
|
var _gestureResponseDista, _gestureResponseDista2, _gestureResponseDista3, _gestureResponseDista4;
|
|
195
|
-
|
|
196
159
|
AnimatedNativeScreen = AnimatedNativeScreen || _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
|
|
197
160
|
let {
|
|
198
161
|
// Filter out active prop in this case because it is unused and
|
|
@@ -205,7 +168,6 @@ class InnerScreen extends _react.default.Component {
|
|
|
205
168
|
gestureResponseDistance,
|
|
206
169
|
...props
|
|
207
170
|
} = rest;
|
|
208
|
-
|
|
209
171
|
if (active !== undefined && activityState === undefined) {
|
|
210
172
|
console.warn('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');
|
|
211
173
|
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
|
@@ -213,15 +175,14 @@ class InnerScreen extends _react.default.Component {
|
|
|
213
175
|
|
|
214
176
|
const handleRef = ref => {
|
|
215
177
|
var _ref$viewConfig, _ref$viewConfig$valid;
|
|
216
|
-
|
|
217
178
|
if (ref !== null && ref !== void 0 && (_ref$viewConfig = ref.viewConfig) !== null && _ref$viewConfig !== void 0 && (_ref$viewConfig$valid = _ref$viewConfig.validAttributes) !== null && _ref$viewConfig$valid !== void 0 && _ref$viewConfig$valid.style) {
|
|
218
|
-
ref.viewConfig.validAttributes.style = {
|
|
179
|
+
ref.viewConfig.validAttributes.style = {
|
|
180
|
+
...ref.viewConfig.validAttributes.style,
|
|
219
181
|
display: false
|
|
220
182
|
};
|
|
221
183
|
this.setRef(ref);
|
|
222
184
|
}
|
|
223
185
|
};
|
|
224
|
-
|
|
225
186
|
return /*#__PURE__*/_react.default.createElement(DelayedFreeze, {
|
|
226
187
|
freeze: freezeOnBlur && activityState === 0
|
|
227
188
|
}, /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, props, {
|
|
@@ -231,7 +192,8 @@ class InnerScreen extends _react.default.Component {
|
|
|
231
192
|
end: (_gestureResponseDista2 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.end) !== null && _gestureResponseDista2 !== void 0 ? _gestureResponseDista2 : -1,
|
|
232
193
|
top: (_gestureResponseDista3 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.top) !== null && _gestureResponseDista3 !== void 0 ? _gestureResponseDista3 : -1,
|
|
233
194
|
bottom: (_gestureResponseDista4 = gestureResponseDistance === null || gestureResponseDistance === void 0 ? void 0 : gestureResponseDistance.bottom) !== null && _gestureResponseDista4 !== void 0 ? _gestureResponseDista4 : -1
|
|
234
|
-
}
|
|
195
|
+
}
|
|
196
|
+
// This prevents showing blank screen when navigating between multiple screens with freezing
|
|
235
197
|
// https://github.com/software-mansion/react-native-screens/pull/1208
|
|
236
198
|
,
|
|
237
199
|
ref: handleRef,
|
|
@@ -244,7 +206,8 @@ class InnerScreen extends _react.default.Component {
|
|
|
244
206
|
}], {
|
|
245
207
|
useNativeDriver: true
|
|
246
208
|
})
|
|
247
|
-
}), !isNativeStack ?
|
|
209
|
+
}), !isNativeStack ?
|
|
210
|
+
// see comment of this prop in types.tsx for information why it is needed
|
|
248
211
|
children : /*#__PURE__*/_react.default.createElement(_TransitionProgressContext.default.Provider, {
|
|
249
212
|
value: {
|
|
250
213
|
progress: this.progress,
|
|
@@ -262,11 +225,9 @@ class InnerScreen extends _react.default.Component {
|
|
|
262
225
|
onComponentRef,
|
|
263
226
|
...props
|
|
264
227
|
} = rest;
|
|
265
|
-
|
|
266
228
|
if (active !== undefined && activityState === undefined) {
|
|
267
229
|
activityState = active !== 0 ? 2 : 0;
|
|
268
230
|
}
|
|
269
|
-
|
|
270
231
|
return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({
|
|
271
232
|
style: [style, {
|
|
272
233
|
display: activityState !== 0 ? 'flex' : 'none'
|
|
@@ -275,27 +236,34 @@ class InnerScreen extends _react.default.Component {
|
|
|
275
236
|
}, props));
|
|
276
237
|
}
|
|
277
238
|
}
|
|
278
|
-
|
|
279
239
|
}
|
|
280
|
-
|
|
281
240
|
function ScreenContainer(props) {
|
|
282
241
|
const {
|
|
283
242
|
enabled = ENABLE_SCREENS,
|
|
284
243
|
hasTwoStates,
|
|
285
244
|
...rest
|
|
286
245
|
} = props;
|
|
287
|
-
|
|
288
246
|
if (enabled && isPlatformSupported) {
|
|
289
247
|
if (hasTwoStates) {
|
|
290
248
|
return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenNavigationContainer, rest);
|
|
291
249
|
}
|
|
292
|
-
|
|
293
250
|
return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenContainer, rest);
|
|
294
251
|
}
|
|
295
|
-
|
|
296
252
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, rest);
|
|
297
253
|
}
|
|
298
|
-
|
|
254
|
+
function FullWindowOverlay(props) {
|
|
255
|
+
if (_reactNative.Platform.OS !== 'ios') {
|
|
256
|
+
console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
|
|
257
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, props);
|
|
258
|
+
}
|
|
259
|
+
return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeFullWindowOverlay, {
|
|
260
|
+
style: {
|
|
261
|
+
position: 'absolute',
|
|
262
|
+
width: '100%',
|
|
263
|
+
height: '100%'
|
|
264
|
+
}
|
|
265
|
+
}, props.children);
|
|
266
|
+
}
|
|
299
267
|
const styles = _reactNative.StyleSheet.create({
|
|
300
268
|
headerSubview: {
|
|
301
269
|
position: 'absolute',
|
|
@@ -306,7 +274,6 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
306
274
|
justifyContent: 'center'
|
|
307
275
|
}
|
|
308
276
|
});
|
|
309
|
-
|
|
310
277
|
const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
|
|
311
278
|
type: "back",
|
|
312
279
|
style: styles.headerSubview
|
|
@@ -314,41 +281,32 @@ const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.cr
|
|
|
314
281
|
resizeMode: "center",
|
|
315
282
|
fadeDuration: 0
|
|
316
283
|
}, props)));
|
|
317
|
-
|
|
318
284
|
const ScreenStackHeaderRightView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
319
285
|
type: "right",
|
|
320
286
|
style: styles.headerSubview
|
|
321
287
|
}));
|
|
322
|
-
|
|
323
288
|
const ScreenStackHeaderLeftView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
324
289
|
type: "left",
|
|
325
290
|
style: styles.headerSubview
|
|
326
291
|
}));
|
|
327
|
-
|
|
328
292
|
const ScreenStackHeaderCenterView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
329
293
|
type: "center",
|
|
330
294
|
style: styles.headerSubview
|
|
331
295
|
}));
|
|
332
|
-
|
|
333
296
|
const ScreenStackHeaderSearchBarView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
|
334
297
|
type: "searchBar",
|
|
335
298
|
style: styles.headerSubview
|
|
336
299
|
}));
|
|
337
|
-
|
|
338
300
|
// context to be used when the user wants to use enhanced implementation
|
|
339
301
|
// e.g. to use `useReanimatedTransitionProgress` (see `reanimated` folder in repo)
|
|
340
302
|
const ScreenContext = /*#__PURE__*/_react.default.createContext(InnerScreen);
|
|
341
|
-
|
|
342
303
|
class Screen extends _react.default.Component {
|
|
343
304
|
render() {
|
|
344
305
|
const ScreenWrapper = this.context || InnerScreen;
|
|
345
306
|
return /*#__PURE__*/_react.default.createElement(ScreenWrapper, this.props);
|
|
346
307
|
}
|
|
347
|
-
|
|
348
308
|
}
|
|
349
|
-
|
|
350
309
|
_defineProperty(Screen, "contextType", ScreenContext);
|
|
351
|
-
|
|
352
310
|
module.exports = {
|
|
353
311
|
// these are classes so they are not evaluated until used
|
|
354
312
|
// so no need to use getters for them
|
|
@@ -357,45 +315,29 @@ module.exports = {
|
|
|
357
315
|
ScreenContext,
|
|
358
316
|
ScreenStack,
|
|
359
317
|
InnerScreen,
|
|
360
|
-
|
|
318
|
+
FullWindowOverlay,
|
|
361
319
|
get NativeScreen() {
|
|
362
320
|
return ScreensNativeModules.NativeScreen;
|
|
363
321
|
},
|
|
364
|
-
|
|
365
322
|
get NativeScreenContainer() {
|
|
366
323
|
return ScreensNativeModules.NativeScreenContainer;
|
|
367
324
|
},
|
|
368
|
-
|
|
369
325
|
get NativeScreenNavigationContainer() {
|
|
370
326
|
return ScreensNativeModules.NativeScreenNavigationContainer;
|
|
371
327
|
},
|
|
372
|
-
|
|
373
328
|
get ScreenStackHeaderConfig() {
|
|
374
329
|
return ScreensNativeModules.NativeScreenStackHeaderConfig;
|
|
375
330
|
},
|
|
376
|
-
|
|
377
331
|
get ScreenStackHeaderSubview() {
|
|
378
332
|
return ScreensNativeModules.NativeScreenStackHeaderSubview;
|
|
379
333
|
},
|
|
380
|
-
|
|
381
334
|
get SearchBar() {
|
|
382
335
|
if (!_utils.isSearchBarAvailableForCurrentPlatform) {
|
|
383
336
|
console.warn('Importing SearchBar is only valid on iOS and Android devices.');
|
|
384
337
|
return _reactNative.View;
|
|
385
338
|
}
|
|
386
|
-
|
|
387
339
|
return ScreensNativeModules.NativeSearchBar;
|
|
388
340
|
},
|
|
389
|
-
|
|
390
|
-
get FullWindowOverlay() {
|
|
391
|
-
if (_reactNative.Platform.OS !== 'ios') {
|
|
392
|
-
console.warn('Importing FullWindowOverlay is only valid on iOS devices.');
|
|
393
|
-
return _reactNative.View;
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
return ScreensNativeModules.NativeFullWindowOverlay;
|
|
397
|
-
},
|
|
398
|
-
|
|
399
341
|
// these are functions and will not be evaluated until used
|
|
400
342
|
// so no need to use getters for them
|
|
401
343
|
ScreenStackHeaderBackButtonImage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.native.tsx"],"names":["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","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","styles","StyleSheet","create","headerSubview","position","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","FullWindowOverlay","useTransitionProgress","executeNativeBackPress"],"mappings":"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","sourcesContent":["import React from 'react';\nimport {\n Animated,\n Image,\n ImageProps,\n Platform,\n requireNativeComponent,\n StyleSheet,\n UIManager,\n View,\n ViewProps,\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} 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\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<React.PropsWithChildren<\n ViewProps & { type?: HeaderSubviewTypes }\n>>;\nlet AnimatedNativeScreen: React.ComponentType<ScreenProps>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<View>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\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 = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\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 {!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 {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\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 <Image resizeMode=\"center\" fadeDuration={0} {...props} />\n </ScreensNativeModules.NativeScreenStackHeaderSubview>\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;\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\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 SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\n },\n get FullWindowOverlay() {\n if (Platform.OS !== 'ios') {\n console.warn('Importing FullWindowOverlay is only valid on iOS devices.');\n return View;\n }\n\n return ScreensNativeModules.NativeFullWindowOverlay;\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"]}
|
|
1
|
+
{"version":3,"names":["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","NativeFullWindowOverlay","ScreensNativeModules","NativeScreen","requireNativeComponent","NativeScreenContainer","NativeScreenNavigationContainer","DelayedFreeze","freeze","children","freezeState","setFreezeState","React","useState","setImmediate","ScreenStack","props","rest","size","Children","count","childrenWithFreeze","map","child","index","key","descriptor","descriptors","freezeEnabled","options","freezeOnBlur","InnerScreen","Component","Animated","Value","ref","onComponentRef","setNativeProps","render","enabled","createAnimatedComponent","active","activityState","isNativeStack","gestureResponseDistance","undefined","handleRef","viewConfig","validAttributes","style","display","setRef","start","end","top","bottom","event","nativeEvent","progress","closing","goingForward","useNativeDriver","ScreenContainer","hasTwoStates","FullWindowOverlay","position","width","height","styles","StyleSheet","create","headerSubview","right","flexDirection","alignItems","justifyContent","ScreenStackHeaderBackButtonImage","ScreenStackHeaderRightView","ScreenStackHeaderLeftView","ScreenStackHeaderCenterView","ScreenStackHeaderSearchBarView","ScreenContext","createContext","Screen","ScreenWrapper","context","module","exports","ScreenStackHeaderConfig","ScreenStackHeaderSubview","SearchBar","isSearchBarAvailableForCurrentPlatform","View","useTransitionProgress","executeNativeBackPress"],"sources":["index.native.tsx"],"sourcesContent":["import 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} 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\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>;\nlet NativeSearchBar: React.ComponentType<SearchBarProps>;\nlet NativeFullWindowOverlay: React.ComponentType<\n PropsWithChildren<{\n style: StyleProp<ViewStyle>;\n }>\n>;\n\nconst ScreensNativeModules = {\n get NativeScreen() {\n NativeScreenValue =\n NativeScreenValue || requireNativeComponent('RNSScreen');\n return NativeScreenValue;\n },\n\n get NativeScreenContainer() {\n NativeScreenContainerValue =\n NativeScreenContainerValue ||\n requireNativeComponent('RNSScreenContainer');\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 = NativeSearchBar || requireNativeComponent('RNSSearchBar');\n return NativeSearchBar;\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\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;\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 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 SearchBar() {\n if (!isSearchBarAvailableForCurrentPlatform) {\n console.warn(\n 'Importing SearchBar is only valid on iOS and Android devices.'\n );\n return View;\n }\n\n return ScreensNativeModules.NativeSearchBar;\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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"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "HeaderHeightContext", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _HeaderHeightContext.default;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
Object.defineProperty(exports, "NativeStackView", {
|
|
@@ -15,26 +15,21 @@ Object.defineProperty(exports, "NativeStackView", {
|
|
|
15
15
|
return _NativeStackView.default;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "createNativeStackNavigator", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return
|
|
21
|
+
return _createNativeStackNavigator.default;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "useHeaderHeight", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return
|
|
27
|
+
return _useHeaderHeight.default;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
|
|
31
30
|
var _createNativeStackNavigator = _interopRequireDefault(require("./navigators/createNativeStackNavigator"));
|
|
32
|
-
|
|
33
31
|
var _NativeStackView = _interopRequireDefault(require("./views/NativeStackView"));
|
|
34
|
-
|
|
35
32
|
var _useHeaderHeight = _interopRequireDefault(require("./utils/useHeaderHeight"));
|
|
36
|
-
|
|
37
33
|
var _HeaderHeightContext = _interopRequireDefault(require("./utils/HeaderHeightContext"));
|
|
38
|
-
|
|
39
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
40
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["/**\n * Navigators\n */\nexport { default as createNativeStackNavigator } from './navigators/createNativeStackNavigator';\n\n/**\n * Views\n */\nexport { default as NativeStackView } from './views/NativeStackView';\n\n/**\n * Utilities\n */\nexport { default as useHeaderHeight } from './utils/useHeaderHeight';\nexport { default as HeaderHeightContext } from './utils/HeaderHeightContext';\n\n/**\n * Types\n */\nexport type {\n NativeStackNavigationOptions,\n NativeStackNavigationProp,\n NativeStackScreenProps,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AAKA;AAKA;AACA;AAA6E"}
|