From 7489bc0a8b93d0337773771b238cb3faf548e8b2 Mon Sep 17 00:00:00 2001 From: dananji Date: Wed, 10 Jan 2024 11:09:18 -0800 Subject: [PATCH] Use timeupdate event to enable add to playlist btn when loadedmetadata event misses --- app/views/media_objects/_add_to_playlist.html.erb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/views/media_objects/_add_to_playlist.html.erb b/app/views/media_objects/_add_to_playlist.html.erb index 253985efd4..af5325e77f 100644 --- a/app/views/media_objects/_add_to_playlist.html.erb +++ b/app/views/media_objects/_add_to_playlist.html.erb @@ -173,6 +173,15 @@ Unless required by applicable law or agreed to in writing, software distributed player.on('loadedmetadata', () => { enableAddToPlaylist(); }); + // On MacOS, sometimes browsers miss the loadedmetadata event resulting not enabling the add to playlist button. + // This event listener gets fired right after the first segment loads into the player, and checks the button's + // state to enable it if the loadedmetadata event misses. + player.on('timeupdate', () => { + let addToPlaylistBtn = document.getElementById('addToPlaylistBtn'); + if (addToPlaylistBtn && addToPlaylistBtn.disabled) { + addToPlaylistBtn.disabled = false; + } + }) player.on('seeked', () => { if(getActiveItem() != undefined) { activeTrack = getActiveItem(false);