diff --git a/src/routes/MetaDetails/MetaDetails.js b/src/routes/MetaDetails/MetaDetails.js index 925ecea2e..a19227a6c 100644 --- a/src/routes/MetaDetails/MetaDetails.js +++ b/src/routes/MetaDetails/MetaDetails.js @@ -3,82 +3,92 @@ const { NavBar, MetaPreview, useInLibrary } = require('stremio/common'); const VideosList = require('./VideosList'); const StreamsList = require('./StreamsList'); const useMetaDetails = require('./useMetaDetails'); -const useSelectableGroups = require('./useSelectableGroups'); +const useSelectableResource = require('./useSelectableResource'); const styles = require('./styles'); const MetaDetails = ({ urlParams }) => { const metaDetails = useMetaDetails(urlParams); - const [metaResourceRef, metaGroups, selectedMetaGroup] = useSelectableGroups(metaDetails.selected.meta_resource_ref, metaDetails.meta_groups); + const [metaResourceRef, metaResources, selectedMetaResource] = useSelectableResource(metaDetails.selected.meta_resource_ref, metaDetails.meta_resources); const streamsResourceRef = metaDetails.selected.streams_resource_ref; - const streamsGroups = metaDetails.streams_groups; - const [inLibrary, , , toggleInLibrary] = useInLibrary(metaResourceRef ? metaResourceRef.id : null); + const streamsResources = metaDetails.streams_resources; + const [inLibrary, , , toggleInLibrary] = useInLibrary(metaResourceRef !== null ? metaResourceRef.id : null); return (
{ - metaResourceRef !== null ? - selectedMetaGroup !== null ? - - { - typeof selectedMetaGroup.content.content.background === 'string' && - selectedMetaGroup.content.content.background.length > 0 ? -
- {' -
- : - null - } - -
+ metaResourceRef === null ? + + : + metaResources.length === 0 ? + : - metaGroups.length === 0 ? + metaResources.every((metaResource) => metaResource.content.type === 'Err') ? : - metaGroups.every((group) => group.content.type === 'Err') ? - + selectedMetaResource !== null ? + + { + typeof selectedMetaResource.content.content.background === 'string' && + selectedMetaResource.content.content.background.length > 0 ? +
+ {' +
+ : + null + } + +
: - : - null } { streamsResourceRef !== null ? : metaResourceRef !== null ? : null diff --git a/src/routes/MetaDetails/StreamsList/StreamsList.js b/src/routes/MetaDetails/StreamsList/StreamsList.js index 855615f3c..01163b29a 100644 --- a/src/routes/MetaDetails/StreamsList/StreamsList.js +++ b/src/routes/MetaDetails/StreamsList/StreamsList.js @@ -6,27 +6,31 @@ const { Button } = require('stremio/common'); const Stream = require('./Stream'); const styles = require('./styles'); -const StreamsList = ({ className, streamsGroups }) => { - const readyStreams = React.useMemo(() => { - return streamsGroups - .filter((stream) => stream.content.type === 'Ready') - .map((stream) => stream.content.content) +const StreamsList = ({ className, streamsResources }) => { + const streams = React.useMemo(() => { + return streamsResources + .filter((streamsResource) => streamsResource.content.type === 'Ready') + .map((streamsResource) => streamsResource.content.content) .flat(1); - }, [streamsGroups]); + }, [streamsResources]); return (
{ - readyStreams.length > 0 ? - readyStreams.map((stream, index) => ( - - )) + streamsResources.length === 0 ? +
No addons ware requested for streams
: - streamsGroups.length === 0 ? -
No addons ware requested for streams
+ streamsResources.every((streamsResource) => streamsResource.content.type === 'Err') ? +
No streams were found
: - streamsGroups.every((group) => group.content.type === 'Err') ? -
No streams were found
+ streams.length > 0 ? + streams.map((stream, index) => ( + + )) : @@ -44,7 +48,7 @@ const StreamsList = ({ className, streamsGroups }) => { StreamsList.propTypes = { className: PropTypes.string, - streamsGroups: PropTypes.arrayOf(PropTypes.object) + streamsResources: PropTypes.arrayOf(PropTypes.object) }; module.exports = StreamsList; diff --git a/src/routes/MetaDetails/VideosList/VideosList.js b/src/routes/MetaDetails/VideosList/VideosList.js index 32d6efbb0..d7e04b78a 100644 --- a/src/routes/MetaDetails/VideosList/VideosList.js +++ b/src/routes/MetaDetails/VideosList/VideosList.js @@ -6,13 +6,13 @@ const Video = require('./Video'); const useSelectableSeasons = require('./useSelectableSeasons'); const styles = require('./styles'); -const VideosList = ({ className, metaGroup }) => { +const VideosList = ({ className, metaResource }) => { const videos = React.useMemo(() => { - return metaGroup && metaGroup.content.type === 'Ready' ? - metaGroup.content.content.videos + return metaResource && metaResource.content.type === 'Ready' ? + metaResource.content.content.videos : []; - }, [metaGroup]); + }, [metaResource]); const [seasons, selectedSeason, videosForSeason, selectSeason] = useSelectableSeasons(videos); const seasonOnSelect = React.useCallback((event) => { selectSeason(event.value); @@ -20,7 +20,7 @@ const VideosList = ({ className, metaGroup }) => { return (
{ - !metaGroup || metaGroup.content.type === 'Loading' ? + !metaResource || metaResource.content.type === 'Loading' ?
@@ -32,7 +32,7 @@ const VideosList = ({ className, metaGroup }) => {
: - metaGroup.content.type === 'Err' || videosForSeason.length === 0 ? + metaResource.content.type === 'Err' || videosForSeason.length === 0 ?
No videos found for this meta
@@ -66,7 +66,7 @@ const VideosList = ({ className, metaGroup }) => { VideosList.propTypes = { className: PropTypes.string, - metaGroup: PropTypes.object + metaResource: PropTypes.object }; module.exports = VideosList;