// @flow import { RCTViewManager } from 'react-native-dom'; import RCTVideo from './RCTVideo'; import resizeModes from './resizeModes'; import type { VideoSource } from './types'; class RCTVideoManager extends RCTViewManager { static moduleName = 'RCTVideoManager'; view() { return new RCTVideo(this.bridge); } describeProps() { return super .describeProps() .addBooleanProp('controls', this.setControls) .addStringProp('id', this.setId) .addBooleanProp('muted', this.setMuted) .addBooleanProp('paused', this.setPaused) .addNumberProp('progressUpdateInterval', this.setProgressUpdateInterval) .addBooleanProp('rate', this.setRate) .addBooleanProp('repeat', this.setRepeat) .addNumberProp('resizeMode', this.setResizeMode) .addNumberProp('seek', this.setSeek) .addObjectProp('src', this.setSource) .addNumberProp('volume', this.setVolume) .addDirectEvent('onVideoEnd') .addDirectEvent('onVideoError') .addDirectEvent('onVideoLoad') .addDirectEvent('onVideoLoadStart') .addDirectEvent('onVideoProgress'); } dismissFullscreenPlayer() { // not currently working } presentFullscreenPlayer() { // not currently working } setControls(view: RCTVideo, value: boolean) { view.controls = value; } setId(view: RCTVideo, value: string) { view.id = value; } setMuted(view: RCTVideo, value: boolean) { view.muted = value; } setPaused(view: RCTVideo, value: boolean) { view.paused = value; } setRate(view: RCTVideo, value: number) { view.rate = value; } setRepeat(view: RCTVideo, value: boolean) { view.repeat = value; } setResizeMode(view: RCTVideo, value: number) { view.resizeMode = value; } setSeek(view: RCTVideo, value: number) { view.seek = value; } setSource(view: RCTVideo, value: VideoSource) { view.source = value; } constantsToExport() { return { ...resizeModes }; } } export default RCTVideoManager;