import React from 'react'; import { requireNativeComponent, ViewProps } from 'react-native'; import { ComponentOrClass, MediaViewContext, MediaViewContextValueType } from './contexts'; export type MediaViewProps = ViewProps; // tslint:disable-next-line:variable-name export const NativeMediaView = requireNativeComponent( 'MediaView' ); class MediaViewChild extends React.Component< MediaViewProps & MediaViewContextValueType > { private mediaView: ComponentOrClass | null = null; private handleMediaViewMount = (ref: ComponentOrClass | null) => { if (this.mediaView) { this.props.unregister(); this.mediaView = null; } if (ref) { this.props.register(ref); this.mediaView = ref; } }; render() { return ; } } export default class MediaView extends React.Component { render() { return ( {(contextValue: MediaViewContextValueType) => ( )} ); } }