diff --git a/example/ReactNativeYouTubeExample.typescript.tsx b/example/ReactNativeYouTubeExample.typescript.tsx new file mode 100644 index 00000000..74c65e2d --- /dev/null +++ b/example/ReactNativeYouTubeExample.typescript.tsx @@ -0,0 +1,404 @@ +/* + * Typescript example. + * + * Before use: + * 1) Rename this file to ReactNativeYoutubeExample.tsx (remove the ".typescript" part) + * 2) Delete (or move) the .js counterpart + */ + +import React from 'react'; + +import { + StyleSheet, + View, + Text, + ScrollView, + PixelRatio, + Platform, + Button, + Dimensions, +} from 'react-native'; + +import YouTube, { + YouTubeStandaloneIOS, + YouTubeStandaloneAndroid, + YouTubeState, + OnErrorArg, + OnChangeStateArg, +} from 'react-native-youtube'; + +interface State { + isReady: boolean + status?: YouTubeState + quality?: string + error?: string + isPlaying: boolean + isLooping: boolean + duration: number + currentTime: number + isFullscreen: boolean + playerWidth: number + videosIndex?: number +}; + +export default class ReactNativeYouTubeExample extends React.Component<{}, State> { + state: State = { + isReady: false, + isPlaying: true, + isLooping: true, + duration: 0, + currentTime: 0, + isFullscreen: false, + playerWidth: Dimensions.get('window').width, + }; + + _youTubeRef = React.createRef(); + + render() { + return ( + + {' TYPESCRIPT component for React Native.'} + + { + console.log('error', error) + this.setState({ error }) + }} + onReady={() => { + this.setState({ isReady: true }); + }} + onChangeState={(arg: OnChangeStateArg) => { + console.log('state', arg) + const { state } = arg + // when state == seeking: arg.currentTime exists + if (state !== "stopped" && this.state.error) { + // reset errors + console.log('unsetting error') + this.setState({ error: undefined }) + } + this.setState({ status: state }) + }} + onChangeQuality={({ quality }) => { + console.log('quality', quality); + this.setState({ quality }); + }} + onChangeFullscreen={({ isFullscreen }) => { + console.log('isFull', isFullscreen); + this.setState({ isFullscreen }); + }} + onProgress={(e: any) => { + console.log('prog', e) + this.setState({ currentTime: e.currentTime }); + }} + /> + + {/* Playing / Looping */} + +