mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
send series info to player after metaitem gets loaded
This commit is contained in:
parent
35c9955725
commit
e42065efbf
3 changed files with 25 additions and 22 deletions
|
|
@ -19,7 +19,7 @@ const ControlBar = ({
|
|||
muted,
|
||||
subtitlesTracks,
|
||||
audioTracks,
|
||||
infoAvailable,
|
||||
metaItem,
|
||||
onPlayRequested,
|
||||
onPauseRequested,
|
||||
onMuteRequested,
|
||||
|
|
@ -115,7 +115,7 @@ const ControlBar = ({
|
|||
<Button className={classnames(styles['control-bar-button'], 'disabled')} tabIndex={-1}>
|
||||
<Icon className={styles['icon']} icon={'ic_network'} />
|
||||
</Button>
|
||||
<Button className={classnames(styles['control-bar-button'], { 'disabled': !infoAvailable })} tabIndex={-1} onMouseDown={onInfoButtonMouseDown} onClick={onInfoButtonClick}>
|
||||
<Button className={classnames(styles['control-bar-button'], { 'disabled': metaItem === null || metaItem.type !== 'Ready' })} tabIndex={-1} onMouseDown={onInfoButtonMouseDown} onClick={onInfoButtonClick}>
|
||||
<Icon className={styles['icon']} icon={'ic_info'} />
|
||||
</Button>
|
||||
<Button className={classnames(styles['control-bar-button'], { 'disabled': !chromecastServiceActive })} tabIndex={-1} onClick={onChromecastButtonClick}>
|
||||
|
|
@ -141,7 +141,7 @@ ControlBar.propTypes = {
|
|||
muted: PropTypes.bool,
|
||||
subtitlesTracks: PropTypes.array,
|
||||
audioTracks: PropTypes.array,
|
||||
infoAvailable: PropTypes.bool,
|
||||
metaItem: PropTypes.object,
|
||||
onPlayRequested: PropTypes.func,
|
||||
onPauseRequested: PropTypes.func,
|
||||
onMuteRequested: PropTypes.func,
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
setError(null);
|
||||
if (player.selected === null) {
|
||||
dispatch({ type: 'command', commandName: 'unload' });
|
||||
} else if (streamingServer.baseUrl !== null && streamingServer.baseUrl.type !== 'Loading') {
|
||||
} else if (streamingServer.baseUrl !== null && streamingServer.baseUrl.type !== 'Loading' && player.metaItem !== null && player.metaItem.type !== 'Loading') {
|
||||
dispatch({
|
||||
type: 'command',
|
||||
commandName: 'load',
|
||||
|
|
@ -264,7 +264,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
}
|
||||
});
|
||||
}
|
||||
}, [streamingServer.baseUrl, player.selected, player.seriesInfo, forceTranscoding, maxAudioChannels, casting]);
|
||||
}, [streamingServer.baseUrl, player.selected, player.metaItem && player.metaItem.type, forceTranscoding, maxAudioChannels, casting]);
|
||||
useDeepEqualEffect(() => {
|
||||
if (videoState.stream !== null) {
|
||||
dispatch({
|
||||
|
|
@ -312,7 +312,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
}
|
||||
}, [videoState.audioTracks, videoState.subtitlesTracks, videoState.extraSubtitlesTracks]);
|
||||
React.useEffect(() => {
|
||||
if (player.metaItem === null) {
|
||||
if (player.metaItem === null || player.metaItem.type !== 'Ready') {
|
||||
closeInfoMenu();
|
||||
}
|
||||
}, [player]);
|
||||
|
|
@ -405,7 +405,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
}
|
||||
case 'KeyI': {
|
||||
closeSubtitlesMenu();
|
||||
if (player.metaItem !== null) {
|
||||
if (player.metaItem !== null && player.metaItem.type === 'Ready') {
|
||||
toggleInfoMenu();
|
||||
}
|
||||
|
||||
|
|
@ -500,7 +500,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
muted={videoState.muted}
|
||||
subtitlesTracks={videoState.subtitlesTracks.concat(videoState.extraSubtitlesTracks)}
|
||||
audioTracks={videoState.audioTracks}
|
||||
infoAvailable={player.metaItem !== null}
|
||||
metaItem={player.metaItem}
|
||||
onPlayRequested={onPlayRequested}
|
||||
onPauseRequested={onPauseRequested}
|
||||
onMuteRequested={onMuteRequested}
|
||||
|
|
@ -545,7 +545,7 @@ const Player = ({ urlParams, queryParams }) => {
|
|||
className={classnames(styles['layer'], styles['menu-layer'])}
|
||||
stream={player.selected !== null ? player.selected.stream : null}
|
||||
addon={player.addon}
|
||||
metaItem={player.metaItem}
|
||||
metaItem={player.metaItem !== null && player.metaItem.type === 'Ready' ? player.metaItem.content : null}
|
||||
/>
|
||||
:
|
||||
null
|
||||
|
|
|
|||
|
|
@ -18,27 +18,30 @@ const init = () => ({
|
|||
|
||||
const map = (player) => ({
|
||||
...player,
|
||||
metaItem: player.metaItem !== null ?
|
||||
metaItem: player.metaItem !== null && player.metaItem.type === 'Ready' ?
|
||||
{
|
||||
...player.metaItem,
|
||||
released: new Date(
|
||||
typeof player.metaItem.released === 'string' ?
|
||||
player.metaItem.released
|
||||
:
|
||||
NaN
|
||||
),
|
||||
videos: player.metaItem.videos.map((video) => ({
|
||||
...video,
|
||||
content: {
|
||||
...player.metaItem.content,
|
||||
released: new Date(
|
||||
typeof video.released === 'string' ?
|
||||
video.released
|
||||
typeof player.metaItem.content.released === 'string' ?
|
||||
player.metaItem.content.released
|
||||
:
|
||||
NaN
|
||||
),
|
||||
}))
|
||||
videos: player.metaItem.content.videos.map((video) => ({
|
||||
...video,
|
||||
released: new Date(
|
||||
typeof video.released === 'string' ?
|
||||
video.released
|
||||
:
|
||||
NaN
|
||||
),
|
||||
}))
|
||||
}
|
||||
}
|
||||
:
|
||||
null,
|
||||
player.metaItem,
|
||||
});
|
||||
|
||||
const usePlayer = (urlParams) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue