remove initial state const in player

This commit is contained in:
nklhrstv 2020-03-21 16:01:50 +02:00
parent 59851b4e73
commit b535315d2a

View file

@ -12,7 +12,18 @@ const usePlayer = require('./usePlayer');
const useSettings = require('./useSettings');
const styles = require('./styles');
const INITIAL_VIDEO_STATE = {
const Player = ({ urlParams }) => {
const player = usePlayer(urlParams);
const [settings, updateSettings] = useSettings();
const routeFocused = useRouteFocused();
const [, , , toggleFullscreen] = useFullscreen();
const [immersed, setImmersed] = React.useState(true);
const setImmersedDebounced = React.useCallback(debounce(setImmersed, 3000), []);
const [subtitlesPickerOpen, , closeSubtitlesPicker, toggleSubtitlesPicker] = useBinaryState(false);
const [metaPreviewOpen, , closeMetaPreview, toggleMetaPreview] = useBinaryState(false);
const [videoState, setVideoState] = React.useReducer(
(videoState, nextVideoState) => ({ ...videoState, ...nextVideoState }),
{
paused: null,
time: null,
duration: null,
@ -27,21 +38,8 @@ const INITIAL_VIDEO_STATE = {
subtitlesTextColor: null,
subtitlesBackgroundColor: null,
subtitlesOutlineColor: null
};
const Player = ({ urlParams }) => {
const player = usePlayer(urlParams);
const [settings, updateSettings] = useSettings();
const routeFocused = useRouteFocused();
const [, , , toggleFullscreen] = useFullscreen();
const [immersed, setImmersed] = React.useState(true);
const setImmersedDebounced = React.useCallback(debounce(setImmersed, 3000), []);
const [subtitlesPickerOpen, , closeSubtitlesPicker, toggleSubtitlesPicker] = useBinaryState(false);
const [metaPreviewOpen, , closeMetaPreview, toggleMetaPreview] = useBinaryState(false);
const [videoState, setVideoState] = React.useReducer((videoState, nextVideoState) => ({
...videoState,
...nextVideoState
}), INITIAL_VIDEO_STATE);
}
);
const videoRef = React.useRef(null);
const dispatch = React.useCallback((args) => {
if (videoRef.current !== null) {
@ -97,6 +95,15 @@ const Player = ({ urlParams }) => {
const onSubtitlesOffsetChanged = React.useCallback((offset) => {
updateSettings({ subtitles_offset: offset });
}, [updateSettings]);
const onVideoClick = React.useCallback(() => {
if (videoState.paused !== null) {
if (videoState.paused) {
onPlayRequested();
} else {
onPauseRequested();
}
}
}, [videoState.paused]);
const onContainerMouseDown = React.useCallback((event) => {
if (!event.nativeEvent.subtitlesPickerClosePrevented) {
closeSubtitlesPicker();
@ -120,17 +127,8 @@ const Player = ({ urlParams }) => {
const onBarMouseMove = React.useCallback((event) => {
event.nativeEvent.immersePrevented = true;
}, []);
const onVideoClick = React.useCallback(() => {
if (videoState.paused !== null) {
if (videoState.paused) {
onPlayRequested();
} else {
onPauseRequested();
}
}
}, [videoState.paused]);
useDeepEqualEffect(() => {
if (player.selected === null || player.selected.stream === null) {
if (player.selected === null) {
dispatch({ commandName: 'stop' });
} else {
dispatch({
@ -145,7 +143,6 @@ const Player = ({ urlParams }) => {
0
}
});
if (Array.isArray(player.selected.stream.subtitles)) {
dispatch({
commandName: 'addSubtitlesTracks',
commandArgs: {
@ -153,8 +150,7 @@ const Player = ({ urlParams }) => {
}
});
}
}
}, [player.selected && player.selected.stream]);
}, [player.selected]);
useDeepEqualEffect(() => {
dispatch({
commandName: 'addSubtitlesTracks',