Merge pull request #312 from Stremio/feat/player-next-video

feat(Player): add next video button
This commit is contained in:
Nikola Hristov 2022-11-02 20:50:07 +02:00 committed by GitHub
commit 9b2f23cac6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View file

@ -21,6 +21,7 @@ const ControlBar = ({
subtitlesTracks,
audioTracks,
metaItem,
nextVideo,
onPlayRequested,
onPauseRequested,
onMuteRequested,
@ -55,6 +56,15 @@ const ControlBar = ({
}
}
}, [paused, onPlayRequested, onPauseRequested]);
const onNextVideoButtonClick = React.useCallback(() => {
if (nextVideo !== null && typeof nextVideo.deepLinks === 'object') {
if (nextVideo.deepLinks.player !== null) {
window.location.replace(nextVideo.deepLinks.player);
} else if (nextVideo.deepLinks.metaDetailsStreams !== null) {
window.location.replace(nextVideo.deepLinks.metaDetailsStreams);
}
}
}, [nextVideo]);
const onMuteButtonClick = React.useCallback(() => {
if (muted) {
if (typeof onUnmuteRequested === 'function') {
@ -105,6 +115,14 @@ const ControlBar = ({
<Button className={classnames(styles['control-bar-button'], { 'disabled': typeof paused !== 'boolean' })} title={paused ? 'Play' : 'Pause'} tabIndex={-1} onClick={onPlayPauseButtonClick}>
<Icon className={styles['icon']} icon={typeof paused !== 'boolean' || paused ? 'ic_play' : 'ic_pause'} />
</Button>
{
nextVideo !== null ?
<Button className={classnames(styles['control-bar-button'])} title={'Next Video'} tabIndex={-1} onClick={onNextVideoButtonClick}>
<Icon className={styles['icon']} icon={'ic_play_next'} />
</Button>
:
null
}
<Button className={classnames(styles['control-bar-button'], { 'disabled': typeof muted !== 'boolean' })} title={muted ? 'Unmute' : 'Mute'} tabIndex={-1} onClick={onMuteButtonClick}>
<Icon
className={styles['icon']}
@ -163,6 +181,7 @@ ControlBar.propTypes = {
subtitlesTracks: PropTypes.array,
audioTracks: PropTypes.array,
metaItem: PropTypes.object,
nextVideo: PropTypes.object,
onPlayRequested: PropTypes.func,
onPauseRequested: PropTypes.func,
onMuteRequested: PropTypes.func,

View file

@ -526,6 +526,7 @@ const Player = ({ urlParams, queryParams }) => {
subtitlesTracks={videoState.subtitlesTracks.concat(videoState.extraSubtitlesTracks)}
audioTracks={videoState.audioTracks}
metaItem={player.metaItem}
nextVideo={player.nextVideo}
onPlayRequested={onPlayRequested}
onPauseRequested={onPauseRequested}
onMuteRequested={onMuteRequested}