yeet
This commit is contained in:
205
node_modules/react-native-screens/lib/commonjs/index.native.js
generated
vendored
Normal file
205
node_modules/react-native-screens/lib/commonjs/index.native.js
generated
vendored
Normal file
@ -0,0 +1,205 @@
|
||||
"use strict";
|
||||
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
|
||||
var _reactNative = require("react-native");
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _extends() { _extends = Object.assign || 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); }
|
||||
|
||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||||
|
||||
let ENABLE_SCREENS = false;
|
||||
|
||||
function enableScreens(shouldEnableScreens = true) {
|
||||
ENABLE_SCREENS = shouldEnableScreens;
|
||||
|
||||
if (ENABLE_SCREENS && !_reactNative.UIManager.getViewManagerConfig('RNSScreen')) {
|
||||
console.error("Screen native module hasn't been linked. Please check the react-native-screens README for more details");
|
||||
}
|
||||
} // const that tells if the library should use new implementation, will be undefined for older versions
|
||||
|
||||
|
||||
const shouldUseActivityState = true;
|
||||
|
||||
function screensEnabled() {
|
||||
return ENABLE_SCREENS;
|
||||
} // We initialize these lazily so that importing the module doesn't throw error when not linked
|
||||
// This is necessary coz libraries such as React Navigation import the library where it may not be enabled
|
||||
|
||||
|
||||
let NativeScreenValue;
|
||||
let NativeScreenContainerValue;
|
||||
let NativeScreenStack;
|
||||
let NativeScreenStackHeaderConfig;
|
||||
let NativeScreenStackHeaderSubview;
|
||||
let AnimatedNativeScreen;
|
||||
const ScreensNativeModules = {
|
||||
get NativeScreen() {
|
||||
NativeScreenValue = NativeScreenValue || (0, _reactNative.requireNativeComponent)('RNSScreen', null);
|
||||
return NativeScreenValue;
|
||||
},
|
||||
|
||||
get NativeScreenContainer() {
|
||||
NativeScreenContainerValue = NativeScreenContainerValue || (0, _reactNative.requireNativeComponent)('RNSScreenContainer', null);
|
||||
return NativeScreenContainerValue;
|
||||
},
|
||||
|
||||
get NativeScreenStack() {
|
||||
NativeScreenStack = NativeScreenStack || (0, _reactNative.requireNativeComponent)('RNSScreenStack', null);
|
||||
return NativeScreenStack;
|
||||
},
|
||||
|
||||
get NativeScreenStackHeaderConfig() {
|
||||
NativeScreenStackHeaderConfig = NativeScreenStackHeaderConfig || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderConfig', null);
|
||||
return NativeScreenStackHeaderConfig;
|
||||
},
|
||||
|
||||
get NativeScreenStackHeaderSubview() {
|
||||
NativeScreenStackHeaderSubview = NativeScreenStackHeaderSubview || (0, _reactNative.requireNativeComponent)('RNSScreenStackHeaderSubview', null);
|
||||
return NativeScreenStackHeaderSubview;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
class Screen extends _react.default.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
|
||||
_defineProperty(this, "setRef", ref => {
|
||||
this._ref = ref;
|
||||
this.props.onComponentRef && this.props.onComponentRef(ref);
|
||||
});
|
||||
}
|
||||
|
||||
setNativeProps(props) {
|
||||
this._ref.setNativeProps(props);
|
||||
}
|
||||
|
||||
render() {
|
||||
const {
|
||||
enabled = true
|
||||
} = this.props;
|
||||
|
||||
if (!ENABLE_SCREENS || !enabled) {
|
||||
// Filter out active prop in this case because it is unused and
|
||||
// can cause problems depending on react-native version:
|
||||
// https://github.com/react-navigation/react-navigation/issues/4886
|
||||
|
||||
/* eslint-disable no-unused-vars */
|
||||
const {
|
||||
active,
|
||||
enabled,
|
||||
onComponentRef,
|
||||
...rest
|
||||
} = this.props;
|
||||
return /*#__PURE__*/_react.default.createElement(_reactNative.Animated.View, _extends({}, rest, {
|
||||
ref: this.setRef
|
||||
}));
|
||||
} else {
|
||||
AnimatedNativeScreen = AnimatedNativeScreen || _reactNative.Animated.createAnimatedComponent(ScreensNativeModules.NativeScreen);
|
||||
let {
|
||||
enabled,
|
||||
active,
|
||||
activityState,
|
||||
...rest
|
||||
} = this.props;
|
||||
|
||||
if (active !== undefined && activityState === undefined) {
|
||||
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');
|
||||
activityState = active !== 0 ? 2 : 0; // in the new version, we need one of the screens to have value of 2 after the transition
|
||||
}
|
||||
|
||||
return /*#__PURE__*/_react.default.createElement(AnimatedNativeScreen, _extends({}, rest, {
|
||||
activityState: activityState,
|
||||
ref: this.setRef
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class ScreenContainer extends _react.default.Component {
|
||||
render() {
|
||||
const {
|
||||
enabled = true,
|
||||
...rest
|
||||
} = this.props;
|
||||
|
||||
if (!ENABLE_SCREENS || !enabled) {
|
||||
return /*#__PURE__*/_react.default.createElement(_reactNative.View, rest);
|
||||
} else {
|
||||
return /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenContainer, this.props);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const styles = _reactNative.StyleSheet.create({
|
||||
headerSubview: {
|
||||
position: 'absolute',
|
||||
top: 0,
|
||||
right: 0,
|
||||
flexDirection: 'row',
|
||||
alignItems: 'center',
|
||||
justifyContent: 'center'
|
||||
}
|
||||
});
|
||||
|
||||
const ScreenStackHeaderBackButtonImage = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, {
|
||||
type: "back",
|
||||
style: styles.headerSubview
|
||||
}, /*#__PURE__*/_react.default.createElement(_reactNative.Image, _extends({
|
||||
resizeMode: "center",
|
||||
fadeDuration: 0
|
||||
}, props)));
|
||||
|
||||
const ScreenStackHeaderRightView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
||||
type: "right",
|
||||
style: styles.headerSubview
|
||||
}));
|
||||
|
||||
const ScreenStackHeaderLeftView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
||||
type: "left",
|
||||
style: styles.headerSubview
|
||||
}));
|
||||
|
||||
const ScreenStackHeaderCenterView = props => /*#__PURE__*/_react.default.createElement(ScreensNativeModules.NativeScreenStackHeaderSubview, _extends({}, props, {
|
||||
type: "center",
|
||||
style: styles.headerSubview
|
||||
}));
|
||||
|
||||
module.exports = {
|
||||
ScreenContainer,
|
||||
Screen,
|
||||
|
||||
get NativeScreen() {
|
||||
return ScreensNativeModules.NativeScreen;
|
||||
},
|
||||
|
||||
get NativeScreenContainer() {
|
||||
return ScreensNativeModules.NativeScreenContainer;
|
||||
},
|
||||
|
||||
get ScreenStack() {
|
||||
return ScreensNativeModules.NativeScreenStack;
|
||||
},
|
||||
|
||||
get ScreenStackHeaderConfig() {
|
||||
return ScreensNativeModules.NativeScreenStackHeaderConfig;
|
||||
},
|
||||
|
||||
get ScreenStackHeaderSubview() {
|
||||
return ScreensNativeModules.NativeScreenStackHeaderSubview;
|
||||
},
|
||||
|
||||
ScreenStackHeaderBackButtonImage,
|
||||
ScreenStackHeaderRightView,
|
||||
ScreenStackHeaderLeftView,
|
||||
ScreenStackHeaderCenterView,
|
||||
enableScreens,
|
||||
screensEnabled,
|
||||
shouldUseActivityState
|
||||
};
|
||||
//# sourceMappingURL=index.native.js.map
|
Reference in New Issue
Block a user