11import React , {
22 useRef ,
3+ useState ,
34 useEffect ,
5+ forwardRef ,
46 useCallback ,
57 useImperativeHandle ,
6- forwardRef ,
7- useState ,
88} from 'react' ;
99import { View , StyleSheet , Platform } from 'react-native' ;
1010import WebView from 'react-native-webview' ;
1111import { PLAYER_STATES , PLAYER_ERROR , CUSTOM_USER_AGENT } from './constants' ;
1212import { EventEmitter } from 'events' ;
1313import {
14- MAIN_SCRIPT ,
15- PLAYER_FUNCTIONS ,
1614 playMode ,
1715 soundMode ,
16+ MAIN_SCRIPT ,
17+ PLAYER_FUNCTIONS ,
1818} from './PlayerScripts' ;
1919
20- const YoutubeIframe = (
21- {
20+ const YoutubeIframe = ( props , ref ) => {
21+ const {
2222 height,
2323 width,
2424 videoId,
@@ -39,9 +39,8 @@ const YoutubeIframe = (
3939 onFullScreenChange = _status => { } ,
4040 onPlaybackQualityChange = _quality => { } ,
4141 onPlaybackRateChange = _playbackRate => { } ,
42- } ,
43- ref ,
44- ) => {
42+ } = props ;
43+
4544 const webViewRef = useRef ( null ) ;
4645 const eventEmitter = useRef ( new EventEmitter ( ) ) ;
4746 const [ playerReady , setPlayerReady ] = useState ( false ) ;
@@ -109,7 +108,6 @@ const YoutubeIframe = (
109108 PLAYER_FUNCTIONS . setVolume ( volume ) ,
110109 PLAYER_FUNCTIONS . setPlaybackRate ( playbackRate ) ,
111110 ] . forEach ( webViewRef . current . injectJavaScript ) ;
112-
113111 } , [ play , playerReady , mute , volume , playbackRate ] ) ;
114112
115113 const onWebMessage = useCallback (
@@ -154,14 +152,15 @@ const YoutubeIframe = (
154152 }
155153 } ,
156154 [
157- onChangeState ,
155+ play ,
158156 onReady ,
159- onPlaybackQualityChange ,
160157 onError ,
161- onPlaybackRateChange ,
162- playListStartIndex ,
163158 playList ,
164- play ,
159+ onChangeState ,
160+ onFullScreenChange ,
161+ playListStartIndex ,
162+ onPlaybackRateChange ,
163+ onPlaybackQualityChange ,
165164 ] ,
166165 ) ;
167166
0 commit comments