From 7ffdccd377cfff3f8b6a433bc17dde9b5b2a62a6 Mon Sep 17 00:00:00 2001 From: Janic Duplessis Date: Mon, 8 Oct 2018 03:06:53 -0400 Subject: [PATCH] Use `getViewManagerConfig` when available to remove warning (#28) --- src/screens.native.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/screens.native.js b/src/screens.native.js index 701ebc49..e85f0bb9 100644 --- a/src/screens.native.js +++ b/src/screens.native.js @@ -9,9 +9,16 @@ import { let USE_SCREENS = false; +// UIManager[`${moduleName}`] is deprecated in RN 0.58 and `getViewManagerConfig` is added. +// We can remove this when we drop support for RN < 0.58. +const getViewManagerConfigCompat = name => + typeof UIManager.getViewManagerConfig !== 'undefined' + ? UIManager.getViewManagerConfig(name) + : UIManager[name]; + export function useScreens(shouldUseScreens = true) { USE_SCREENS = shouldUseScreens; - if (USE_SCREENS && !UIManager['RNSScreen']) { + if (USE_SCREENS && !getViewManagerConfigCompat('RNSScreen')) { console.error( `Screen native module hasn't been linked. Please check the react-native-screens README for more details` );