@@ -55,10 +55,17 @@ const YoutubeIframe = (props, ref) => {
5555 const webViewRef = useRef ( null ) ;
5656 const eventEmitter = useRef ( new EventEmitter ( ) ) ;
5757
58- const sendPostMessage = useCallback ( ( eventName , meta ) => {
59- const message = JSON . stringify ( { eventName, meta} ) ;
60- webViewRef . current . postMessage ( message ) ;
61- } , [ ] ) ;
58+ const sendPostMessage = useCallback (
59+ ( eventName , meta ) => {
60+ if ( ! playerReady ) {
61+ return ;
62+ }
63+
64+ const message = JSON . stringify ( { eventName, meta} ) ;
65+ webViewRef . current . postMessage ( message ) ;
66+ } ,
67+ [ playerReady ] ,
68+ ) ;
6269
6370 useImperativeHandle (
6471 ref ,
@@ -119,42 +126,28 @@ const YoutubeIframe = (props, ref) => {
119126 ) ;
120127
121128 useEffect ( ( ) => {
122- if ( ! playerReady ) {
123- // no instance of player is ready
124- return ;
125- }
126-
127129 if ( play ) {
128130 sendPostMessage ( 'playVideo' , { } ) ;
129131 } else {
130132 sendPostMessage ( 'pauseVideo' , { } ) ;
131133 }
132- } , [ play , playerReady , sendPostMessage ] ) ;
134+ } , [ play , sendPostMessage ] ) ;
133135
134136 useEffect ( ( ) => {
135- if ( ! playerReady ) {
136- // no instance of player is ready
137- return ;
138- }
139-
140137 if ( mute ) {
141138 sendPostMessage ( 'muteVideo' , { } ) ;
142139 } else {
143140 sendPostMessage ( 'unMuteVideo' , { } ) ;
144141 }
145- } , [ mute , playerReady , sendPostMessage ] ) ;
142+ } , [ mute , sendPostMessage ] ) ;
146143
147144 useEffect ( ( ) => {
148- if ( ! playerReady ) {
149- // no instance of player is ready
150- return ;
151- }
145+ sendPostMessage ( 'setVolume' , { volume} ) ;
146+ } , [ sendPostMessage , volume ] ) ;
152147
153- [
154- PLAYER_FUNCTIONS . setVolume ( volume ) ,
155- PLAYER_FUNCTIONS . setPlaybackRate ( playbackRate ) ,
156- ] . forEach ( webViewRef . current . injectJavaScript ) ;
157- } , [ volume , playbackRate , playerReady ] ) ;
148+ useEffect ( ( ) => {
149+ sendPostMessage ( 'setPlaybackRate' , { playbackRate} ) ;
150+ } , [ sendPostMessage , playbackRate ] ) ;
158151
159152 useEffect ( ( ) => {
160153 if ( ! playerReady || lastVideoIdRef . current === videoId ) {
0 commit comments