UNPKG

8.81 kBSource Map (JSON)View Raw
1{"version":3,"file":"ExponentVideo.web.js","sourceRoot":"","sources":["../src/ExponentVideo.web.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { View } from 'react-native';\nimport createElement from 'react-native-web/dist/exports/createElement';\n\nimport { AVPlaybackNativeSource, AVPlaybackStatus, AVPlaybackStatusToSet } from './AV';\nimport ExponentAV from './ExponentAV';\n\ntype ExponentVideoProps = {\n source: AVPlaybackNativeSource | null;\n resizeMode?: object;\n status?: AVPlaybackStatusToSet;\n useNativeControls?: boolean;\n onStatusUpdate?: (event: { nativeEvent: AVPlaybackStatus }) => void;\n onReadyForDisplay?: (event: { nativeEvent: object }) => void;\n onFullscreenUpdate?: (event: { nativeEvent: object }) => void;\n onLoadStart: () => void;\n onLoad: (event: { nativeEvent: AVPlaybackStatus }) => void;\n onError: (event: { nativeEvent: { error: string } }) => void;\n // Required by react-native\n scaleX?: number;\n scaleY?: number;\n translateX?: number;\n translateY?: number;\n rotation?: number;\n} & React.ComponentProps<typeof View>;\n\nexport type NaturalSize = {\n width: number;\n height: number;\n orientation: 'portrait' | 'landscape';\n};\n\nexport const FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT = 0;\nexport const FULLSCREEN_UPDATE_PLAYER_DID_PRESENT = 1;\nexport const FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS = 2;\nexport const FULLSCREEN_UPDATE_PLAYER_DID_DISMISS = 3;\n\nexport const IOS_FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT = FULLSCREEN_UPDATE_PLAYER_WILL_PRESENT;\nexport const IOS_FULLSCREEN_UPDATE_PLAYER_DID_PRESENT = FULLSCREEN_UPDATE_PLAYER_DID_PRESENT;\nexport const IOS_FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS = FULLSCREEN_UPDATE_PLAYER_WILL_DISMISS;\nexport const IOS_FULLSCREEN_UPDATE_PLAYER_DID_DISMISS = FULLSCREEN_UPDATE_PLAYER_DID_DISMISS;\n\nconst Video: any = React.forwardRef((props, ref) => createElement('video', { ...props, ref }));\n\nexport default class ExponentVideo extends React.Component<ExponentVideoProps> {\n _video?: HTMLVideoElement;\n\n componentDidMount() {\n const isIE11 = !!window['MSStream'];\n document.addEventListener(\n isIE11 ? 'MSFullscreenChange' : 'fullscreenchange',\n this.onFullscreenChange\n );\n }\n\n componentWillUnmount() {\n const isIE11 = !!window['MSStream'];\n document.addEventListener(\n isIE11 ? 'MSFullscreenChange' : 'fullscreenchange',\n this.onFullscreenChange\n );\n }\n\n onFullscreenChange = event => {\n if (!this.props.onFullscreenUpdate) return;\n\n if (event.target === this._video) {\n if (document.fullscreenElement) {\n this.props.onFullscreenUpdate({\n nativeEvent: { fullscreenUpdate: FULLSCREEN_UPDATE_PLAYER_DID_PRESENT },\n });\n } else {\n this.props.onFullscreenUpdate({\n nativeEvent: { fullscreenUpdate: FULLSCREEN_UPDATE_PLAYER_DID_DISMISS },\n });\n }\n }\n };\n\n onStatusUpdate = async () => {\n if (!this.props.onStatusUpdate) {\n return;\n }\n const nativeEvent = await ExponentAV.getStatusForVideo(this._video);\n this.props.onStatusUpdate({ nativeEvent });\n };\n\n onLoadStart = () => {\n if (!this.props.onLoadStart) {\n return;\n }\n this.props.onLoadStart();\n this.onStatusUpdate();\n };\n\n onLoadedData = event => {\n if (!this.props.onLoad) {\n return;\n }\n this.props.onLoad(event);\n this.onStatusUpdate();\n };\n\n onError = event => {\n if (!this.props.onError) {\n return;\n }\n this.props.onError(event);\n this.onStatusUpdate();\n };\n\n onProgress = () => {\n this.onStatusUpdate();\n };\n\n onSeeking = () => {\n this.onStatusUpdate();\n };\n\n onEnded = () => {\n this.onStatusUpdate();\n };\n\n onLoadedMetadata = () => {\n this.onStatusUpdate();\n };\n\n onCanPlay = event => {\n if (!this.props.onReadyForDisplay) {\n return;\n }\n this.props.onReadyForDisplay(event);\n this.onStatusUpdate();\n };\n\n onStalled = () => {\n this.onStatusUpdate();\n };\n\n onRef = (ref: HTMLVideoElement) => {\n this._video = ref;\n this.onStatusUpdate();\n };\n\n render() {\n const { source, status = {}, resizeMode: objectFit, useNativeControls, style } = this.props;\n\n const customStyle = {\n position: undefined,\n objectFit,\n overflow: 'hidden',\n };\n return (\n <Video\n ref={this.onRef}\n onLoadStart={this.onLoadStart}\n onLoadedData={this.onLoadedData}\n onError={this.onError}\n onTimeUpdate={this.onProgress}\n onSeeking={this.onSeeking}\n onEnded={this.onEnded}\n onLoadedMetadata={this.onLoadedMetadata}\n onCanPlay={this.onCanPlay}\n onStalled={this.onStalled}\n src={(source || { uri: undefined }).uri}\n muted={status.isMuted}\n loop={status.isLooping}\n autoPlay={status.shouldPlay}\n controls={useNativeControls}\n style={[style, customStyle]}\n />\n );\n }\n}\n"]}
\No newline at end of file