make checks for both subtitlesTracks & extraSubtitlesTracks

This commit is contained in:
nklhrstv 2022-04-12 13:57:02 +03:00
parent b811c7ddb5
commit 81d55aceac

View file

@ -154,8 +154,8 @@ const Player = ({ urlParams, queryParams }) => {
dispatch({ type: 'setProp', propName: 'time', propValue: time }); dispatch({ type: 'setProp', propName: 'time', propValue: time });
}, []); }, []);
const onSubtitlesTrackSelected = React.useCallback((id) => { const onSubtitlesTrackSelected = React.useCallback((id) => {
dispatch({ type: 'setProp', propName: 'selectedExtraSubtitlesTrackId', propValue: null });
dispatch({ type: 'setProp', propName: 'selectedSubtitlesTrackId', propValue: id }); dispatch({ type: 'setProp', propName: 'selectedSubtitlesTrackId', propValue: id });
dispatch({ type: 'setProp', propName: 'selectedExtraSubtitlesTrackId', propValue: null });
}, []); }, []);
const onExtraSubtitlesTrackSelected = React.useCallback((id) => { const onExtraSubtitlesTrackSelected = React.useCallback((id) => {
dispatch({ type: 'setProp', propName: 'selectedSubtitlesTrackId', propValue: null }); dispatch({ type: 'setProp', propName: 'selectedSubtitlesTrackId', propValue: null });
@ -269,8 +269,8 @@ const Player = ({ urlParams, queryParams }) => {
dispatch({ type: 'setProp', propName: 'extraSubtitlesSize', propValue: settings.subtitlesSize }); dispatch({ type: 'setProp', propName: 'extraSubtitlesSize', propValue: settings.subtitlesSize });
}, [settings.subtitlesSize]); }, [settings.subtitlesSize]);
React.useEffect(() => { React.useEffect(() => {
dispatch({ type: 'setProp', propName: 'extraSubtitlesOffset', propValue: settings.subtitlesOffset });
dispatch({ type: 'setProp', propName: 'subtitlesOffset', propValue: settings.subtitlesOffset }); dispatch({ type: 'setProp', propName: 'subtitlesOffset', propValue: settings.subtitlesOffset });
dispatch({ type: 'setProp', propName: 'extraSubtitlesOffset', propValue: settings.subtitlesOffset });
}, [settings.subtitlesOffset]); }, [settings.subtitlesOffset]);
React.useEffect(() => { React.useEffect(() => {
dispatch({ type: 'setProp', propName: 'extraSubtitlesTextColor', propValue: settings.subtitlesTextColor }); dispatch({ type: 'setProp', propName: 'extraSubtitlesTextColor', propValue: settings.subtitlesTextColor });
@ -287,10 +287,11 @@ const Player = ({ urlParams, queryParams }) => {
} }
}, [videoState.time, videoState.duration]); }, [videoState.time, videoState.duration]);
React.useEffect(() => { React.useEffect(() => {
if (!Array.isArray(videoState.subtitlesTracks) || videoState.subtitlesTracks.length === 0) { if ((!Array.isArray(videoState.subtitlesTracks) || videoState.subtitlesTracks.length === 0) &&
(!Array.isArray(videoState.extraSubtitlesTracks) || videoState.extraSubtitlesTracks.length === 0)) {
closeSubtitlesMenu(); closeSubtitlesMenu();
} }
}, [videoState.subtitlesTracks]); }, [videoState.subtitlesTracks, videoState.extraSubtitlesTracks]);
React.useEffect(() => { React.useEffect(() => {
if (player.metaItem === null) { if (player.metaItem === null) {
closeInfoMenu(); closeInfoMenu();
@ -375,7 +376,8 @@ const Player = ({ urlParams, queryParams }) => {
} }
case 'KeyS': { case 'KeyS': {
closeInfoMenu(); closeInfoMenu();
if (Array.isArray(videoState.subtitlesTracks) && videoState.subtitlesTracks.length > 0) { if ((Array.isArray(videoState.subtitlesTracks) && videoState.subtitlesTracks.length > 0) ||
(Array.isArray(videoState.extraSubtitlesTracks) && videoState.extraSubtitlesTracks.length > 0)) {
toggleSubtitlesMenu(); toggleSubtitlesMenu();
} }
@ -402,7 +404,7 @@ const Player = ({ urlParams, queryParams }) => {
return () => { return () => {
window.removeEventListener('keydown', onKeyDown); window.removeEventListener('keydown', onKeyDown);
}; };
}, [player, settings.seekTimeDuration, routeFocused, subtitlesMenuOpen, infoMenuOpen, videoState.paused, videoState.time, videoState.volume, videoState.subtitlesTracks, toggleSubtitlesMenu, toggleInfoMenu]); }, [player, settings.seekTimeDuration, routeFocused, subtitlesMenuOpen, infoMenuOpen, videoState.paused, videoState.time, videoState.volume, videoState.subtitlesTracks, videoState.extraSubtitlesTracks, toggleSubtitlesMenu, toggleInfoMenu]);
React.useLayoutEffect(() => { React.useLayoutEffect(() => {
return () => { return () => {
setImmersedDebounced.cancel(); setImmersedDebounced.cancel();