mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-21 11:42: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,
|
muted,
|
||||||
subtitlesTracks,
|
subtitlesTracks,
|
||||||
audioTracks,
|
audioTracks,
|
||||||
infoAvailable,
|
metaItem,
|
||||||
onPlayRequested,
|
onPlayRequested,
|
||||||
onPauseRequested,
|
onPauseRequested,
|
||||||
onMuteRequested,
|
onMuteRequested,
|
||||||
|
|
@ -115,7 +115,7 @@ const ControlBar = ({
|
||||||
<Button className={classnames(styles['control-bar-button'], 'disabled')} tabIndex={-1}>
|
<Button className={classnames(styles['control-bar-button'], 'disabled')} tabIndex={-1}>
|
||||||
<Icon className={styles['icon']} icon={'ic_network'} />
|
<Icon className={styles['icon']} icon={'ic_network'} />
|
||||||
</Button>
|
</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'} />
|
<Icon className={styles['icon']} icon={'ic_info'} />
|
||||||
</Button>
|
</Button>
|
||||||
<Button className={classnames(styles['control-bar-button'], { 'disabled': !chromecastServiceActive })} tabIndex={-1} onClick={onChromecastButtonClick}>
|
<Button className={classnames(styles['control-bar-button'], { 'disabled': !chromecastServiceActive })} tabIndex={-1} onClick={onChromecastButtonClick}>
|
||||||
|
|
@ -141,7 +141,7 @@ ControlBar.propTypes = {
|
||||||
muted: PropTypes.bool,
|
muted: PropTypes.bool,
|
||||||
subtitlesTracks: PropTypes.array,
|
subtitlesTracks: PropTypes.array,
|
||||||
audioTracks: PropTypes.array,
|
audioTracks: PropTypes.array,
|
||||||
infoAvailable: PropTypes.bool,
|
metaItem: PropTypes.object,
|
||||||
onPlayRequested: PropTypes.func,
|
onPlayRequested: PropTypes.func,
|
||||||
onPauseRequested: PropTypes.func,
|
onPauseRequested: PropTypes.func,
|
||||||
onMuteRequested: PropTypes.func,
|
onMuteRequested: PropTypes.func,
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
setError(null);
|
setError(null);
|
||||||
if (player.selected === null) {
|
if (player.selected === null) {
|
||||||
dispatch({ type: 'command', commandName: 'unload' });
|
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({
|
dispatch({
|
||||||
type: 'command',
|
type: 'command',
|
||||||
commandName: 'load',
|
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(() => {
|
useDeepEqualEffect(() => {
|
||||||
if (videoState.stream !== null) {
|
if (videoState.stream !== null) {
|
||||||
dispatch({
|
dispatch({
|
||||||
|
|
@ -312,7 +312,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
}
|
}
|
||||||
}, [videoState.audioTracks, videoState.subtitlesTracks, videoState.extraSubtitlesTracks]);
|
}, [videoState.audioTracks, videoState.subtitlesTracks, videoState.extraSubtitlesTracks]);
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
if (player.metaItem === null) {
|
if (player.metaItem === null || player.metaItem.type !== 'Ready') {
|
||||||
closeInfoMenu();
|
closeInfoMenu();
|
||||||
}
|
}
|
||||||
}, [player]);
|
}, [player]);
|
||||||
|
|
@ -405,7 +405,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
}
|
}
|
||||||
case 'KeyI': {
|
case 'KeyI': {
|
||||||
closeSubtitlesMenu();
|
closeSubtitlesMenu();
|
||||||
if (player.metaItem !== null) {
|
if (player.metaItem !== null && player.metaItem.type === 'Ready') {
|
||||||
toggleInfoMenu();
|
toggleInfoMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -500,7 +500,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
muted={videoState.muted}
|
muted={videoState.muted}
|
||||||
subtitlesTracks={videoState.subtitlesTracks.concat(videoState.extraSubtitlesTracks)}
|
subtitlesTracks={videoState.subtitlesTracks.concat(videoState.extraSubtitlesTracks)}
|
||||||
audioTracks={videoState.audioTracks}
|
audioTracks={videoState.audioTracks}
|
||||||
infoAvailable={player.metaItem !== null}
|
metaItem={player.metaItem}
|
||||||
onPlayRequested={onPlayRequested}
|
onPlayRequested={onPlayRequested}
|
||||||
onPauseRequested={onPauseRequested}
|
onPauseRequested={onPauseRequested}
|
||||||
onMuteRequested={onMuteRequested}
|
onMuteRequested={onMuteRequested}
|
||||||
|
|
@ -545,7 +545,7 @@ const Player = ({ urlParams, queryParams }) => {
|
||||||
className={classnames(styles['layer'], styles['menu-layer'])}
|
className={classnames(styles['layer'], styles['menu-layer'])}
|
||||||
stream={player.selected !== null ? player.selected.stream : null}
|
stream={player.selected !== null ? player.selected.stream : null}
|
||||||
addon={player.addon}
|
addon={player.addon}
|
||||||
metaItem={player.metaItem}
|
metaItem={player.metaItem !== null && player.metaItem.type === 'Ready' ? player.metaItem.content : null}
|
||||||
/>
|
/>
|
||||||
:
|
:
|
||||||
null
|
null
|
||||||
|
|
|
||||||
|
|
@ -18,27 +18,30 @@ const init = () => ({
|
||||||
|
|
||||||
const map = (player) => ({
|
const map = (player) => ({
|
||||||
...player,
|
...player,
|
||||||
metaItem: player.metaItem !== null ?
|
metaItem: player.metaItem !== null && player.metaItem.type === 'Ready' ?
|
||||||
{
|
{
|
||||||
...player.metaItem,
|
...player.metaItem,
|
||||||
released: new Date(
|
content: {
|
||||||
typeof player.metaItem.released === 'string' ?
|
...player.metaItem.content,
|
||||||
player.metaItem.released
|
|
||||||
:
|
|
||||||
NaN
|
|
||||||
),
|
|
||||||
videos: player.metaItem.videos.map((video) => ({
|
|
||||||
...video,
|
|
||||||
released: new Date(
|
released: new Date(
|
||||||
typeof video.released === 'string' ?
|
typeof player.metaItem.content.released === 'string' ?
|
||||||
video.released
|
player.metaItem.content.released
|
||||||
:
|
:
|
||||||
NaN
|
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) => {
|
const usePlayer = (urlParams) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue