diff --git a/.eslintrc b/.eslintrc index 949fb3c71a..bb38fe3b82 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,4 +1,4 @@ { "extends": "airbnb", "parser": "babel-eslint" -} +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index c9f0e84a43..7ccd00c704 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog ### next - +* Fix runtime warning by replacing `UIManager.RCTVideo` with `UIManager.getViewManagerConfig('RCTVideo')` (and ensuring backwards compat) [#1487](https://github.com/react-native-community/react-native-video/pull/1487) * Fix loading package resolved videos when using video-caching [#1438](https://github.com/react-native-community/react-native-video/pull/1438) * Fix "message sent to deallocated instance" crash on ios [#1482](https://github.com/react-native-community/react-native-video/pull/1482) diff --git a/Video.js b/Video.js index 639745e787..ea1ce8f2df 100644 --- a/Video.js +++ b/Video.js @@ -210,6 +210,13 @@ export default class Video extends Component { } }; + getViewManagerConfig = viewManagerName => { + if (!UIManager.getViewManagerConfig) { + return UIManager[viewManagerName]; + } + return UIManager.getViewManagerConfig(viewManagerName); + }; + render() { const resizeMode = this.props.resizeMode; const source = resolveAssetSource(this.props.source) || {}; @@ -224,14 +231,16 @@ export default class Video extends Component { const isAsset = !!(uri && uri.match(/^(assets-library|ipod-library|file|content|ms-appx|ms-appdata):/)); let nativeResizeMode; + const RCTVideoInstance = this.getViewManagerConfig('RCTVideo'); + if (resizeMode === VideoResizeMode.stretch) { - nativeResizeMode = NativeModules.UIManager.RCTVideo.Constants.ScaleToFill; + nativeResizeMode = RCTVideoInstance.Constants.ScaleToFill; } else if (resizeMode === VideoResizeMode.contain) { - nativeResizeMode = NativeModules.UIManager.RCTVideo.Constants.ScaleAspectFit; + nativeResizeMode = RCTVideoInstance.Constants.ScaleAspectFit; } else if (resizeMode === VideoResizeMode.cover) { - nativeResizeMode = NativeModules.UIManager.RCTVideo.Constants.ScaleAspectFill; + nativeResizeMode = RCTVideoInstance.Constants.ScaleAspectFill; } else { - nativeResizeMode = NativeModules.UIManager.RCTVideo.Constants.ScaleNone; + nativeResizeMode = RCTVideoInstance.Constants.ScaleNone; } const nativeProps = Object.assign({}, this.props);