diff --git a/src/screens.native.js b/src/screens.native.js
index 47eed6f5..831c2e3a 100644
--- a/src/screens.native.js
+++ b/src/screens.native.js
@@ -17,7 +17,7 @@ const getViewManagerConfigCompat = name =>
? UIManager.getViewManagerConfig(name)
: UIManager[name];
-export function useScreens(shouldUseScreens = true) {
+function useScreens(shouldUseScreens = true) {
USE_SCREENS = shouldUseScreens;
if (USE_SCREENS && !getViewManagerConfigCompat('RNSScreen')) {
console.error(
@@ -26,20 +26,33 @@ export function useScreens(shouldUseScreens = true) {
}
}
-export function screensEnabled() {
+function screensEnabled() {
return USE_SCREENS;
}
-export const NativeScreen = requireNativeComponent('RNSScreen', null);
+let NativeScreenValue;
+let NativeScreenContainerValue;
-const AnimatedNativeScreen = Animated.createAnimatedComponent(NativeScreen);
+const ScreensNativeModules = {
+ get NativeScreen() {
+ NativeScreenValue =
+ NativeScreenValue || requireNativeComponent('RNSScreen', null);
+ return NativeScreenValue;
+ },
-export const NativeScreenContainer = requireNativeComponent(
- 'RNSScreenContainer',
- null
+ get NativeScreenContainer() {
+ NativeScreenContainerValue =
+ NativeScreenContainerValue ||
+ requireNativeComponent('RNSScreenContainer', null);
+ return NativeScreenContainerValue;
+ },
+};
+
+const AnimatedNativeScreen = Animated.createAnimatedComponent(
+ ScreensNativeModules.NativeScreen
);
-export class Screen extends React.Component {
+class Screen extends React.Component {
setNativeProps(props) {
this._ref.setNativeProps(props);
}
@@ -77,12 +90,26 @@ export class Screen extends React.Component {
}
}
-export class ScreenContainer extends React.Component {
+class ScreenContainer extends React.Component {
render() {
if (!USE_SCREENS) {
return ;
} else {
- return ;
+ return ;
}
}
}
+
+module.exports = {
+ ScreenContainer,
+ Screen,
+ get NativeScreen() {
+ return ScreensNativeModules.NativeScreen;
+ },
+
+ get NativeScreenContainer() {
+ return ScreensNativeModules.NativeScreenContainer;
+ },
+ useScreens,
+ screensEnabled,
+};