@@ -55,10 +55,17 @@ const YoutubeIframe = (props, ref) => {
55
55
const webViewRef = useRef ( null ) ;
56
56
const eventEmitter = useRef ( new EventEmitter ( ) ) ;
57
57
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
+ ) ;
62
69
63
70
useImperativeHandle (
64
71
ref ,
@@ -119,42 +126,28 @@ const YoutubeIframe = (props, ref) => {
119
126
) ;
120
127
121
128
useEffect ( ( ) => {
122
- if ( ! playerReady ) {
123
- // no instance of player is ready
124
- return ;
125
- }
126
-
127
129
if ( play ) {
128
130
sendPostMessage ( 'playVideo' , { } ) ;
129
131
} else {
130
132
sendPostMessage ( 'pauseVideo' , { } ) ;
131
133
}
132
- } , [ play , playerReady , sendPostMessage ] ) ;
134
+ } , [ play , sendPostMessage ] ) ;
133
135
134
136
useEffect ( ( ) => {
135
- if ( ! playerReady ) {
136
- // no instance of player is ready
137
- return ;
138
- }
139
-
140
137
if ( mute ) {
141
138
sendPostMessage ( 'muteVideo' , { } ) ;
142
139
} else {
143
140
sendPostMessage ( 'unMuteVideo' , { } ) ;
144
141
}
145
- } , [ mute , playerReady , sendPostMessage ] ) ;
142
+ } , [ mute , sendPostMessage ] ) ;
146
143
147
144
useEffect ( ( ) => {
148
- if ( ! playerReady ) {
149
- // no instance of player is ready
150
- return ;
151
- }
145
+ sendPostMessage ( 'setVolume' , { volume} ) ;
146
+ } , [ sendPostMessage , volume ] ) ;
152
147
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 ] ) ;
158
151
159
152
useEffect ( ( ) => {
160
153
if ( ! playerReady || lastVideoIdRef . current === videoId ) {
0 commit comments