+
+
{
streams.length > 0 ?
streams.map((stream) => (
-
+
))
:
-
-
-
-
-
-
+
+
+
+
+
+
}
-
);
diff --git a/src/routes/Detail/VideosList/SeasonsBar/SeasonsBar.js b/src/routes/Detail/VideosList/SeasonsBar/SeasonsBar.js
index eea185574..705e23988 100644
--- a/src/routes/Detail/VideosList/SeasonsBar/SeasonsBar.js
+++ b/src/routes/Detail/VideosList/SeasonsBar/SeasonsBar.js
@@ -3,22 +3,22 @@ const PropTypes = require('prop-types');
const classnames = require('classnames');
const Icon = require('stremio-icons/dom');
const { Button, Popup, useBinaryState } = require('stremio/common');
-require('./styles');
+const styles = require('./styles');
const SeasonsBar = ({ className, season, seasons, onSeasonChange }) => {
const [menuOpen, openMenu, closeMenu, toggleMenu] = useBinaryState(false);
const setPrevSeason = React.useCallback(() => {
- if (Array.isArray(seasons)) {
+ if (Array.isArray(seasons) && typeof onSeasonChange === 'function') {
const seasonIndex = seasons.indexOf(season);
- if (seasonIndex > 0 && typeof onSeasonChange === 'function') {
+ if (seasonIndex > 0) {
onSeasonChange(seasons[seasonIndex - 1]);
}
}
}, [season, seasons, onSeasonChange]);
const setNextSeason = React.useCallback(() => {
- if (Array.isArray(seasons)) {
+ if (Array.isArray(seasons) && typeof onSeasonChange === 'function') {
const seasonIndex = seasons.indexOf(season);
- if (seasonIndex < seasons.length - 1 && typeof onSeasonChange === 'function') {
+ if (seasonIndex < seasons.length - 1) {
onSeasonChange(seasons[seasonIndex + 1]);
}
}
@@ -31,28 +31,38 @@ const SeasonsBar = ({ className, season, seasons, onSeasonChange }) => {
}
}, [onSeasonChange]);
return (
-
-
-
+
+
+
(
-
- Season
- {season}
+
+ Season
+ {
+ season !== null && !isNaN(season) ?
+ {season}
+ :
+ null
+ }
)}
renderMenu={() => (
-
+
{
Array.isArray(seasons) ?
seasons.map((season) => (
-
- Season
- {season}
+
+ Season
+ {
+ season !== null && !isNaN(season) ?
+ {season}
+ :
+ null
+ }
))
:
@@ -61,8 +71,8 @@ const SeasonsBar = ({ className, season, seasons, onSeasonChange }) => {
)}
/>
-
-
+
+
);
diff --git a/src/routes/Detail/VideosList/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js b/src/routes/Detail/VideosList/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
index 37b6d1c08..3aca88864 100644
--- a/src/routes/Detail/VideosList/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
+++ b/src/routes/Detail/VideosList/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
@@ -2,19 +2,19 @@ const React = require('react');
const PropTypes = require('prop-types');
const classnames = require('classnames');
const Icon = require('stremio-icons/dom');
-require('./styles');
+const styles = require('./styles');
const SeasonsBarPlaceholder = ({ className }) => {
return (
-
-
-
+
+
+
-
-
+
-
);
diff --git a/src/routes/Detail/VideosList/Video/Video.js b/src/routes/Detail/VideosList/Video/Video.js
index b59e9c8f9..7a37fafc4 100644
--- a/src/routes/Detail/VideosList/Video/Video.js
+++ b/src/routes/Detail/VideosList/Video/Video.js
@@ -3,27 +3,27 @@ const PropTypes = require('prop-types');
const classnames = require('classnames');
const { Button } = require('stremio/common');
const Icon = require('stremio-icons/dom');
-require('./styles');
+const styles = require('./styles');
const Video = ({ className, id, name, poster, episode, released, watched, upcoming, progress, onClick }) => {
return (
-
0 ? name : id} data-id={id} onClick={onClick}>
+ 0 ? name : id} data-id={id} onClick={onClick}>
{
typeof poster === 'string' && poster.length > 0 ?
-
-

+
+
:
null
}
-
-
+
+
{episode !== null && !isNaN(episode) ? `${episode}. ` : null}
{typeof name === 'string' && name.length > 0 ? name : id}
{
- released instanceof Date && !isNaN(released.getFullYear()) ?
-
+ released instanceof Date && !isNaN(released.getTime()) ?
+
{released.toLocaleString(undefined, { year: '2-digit', month: 'short', day: 'numeric' })}
:
@@ -31,28 +31,28 @@ const Video = ({ className, id, name, poster, episode, released, watched, upcomi
}
{
upcoming ?
-
-
Upcoming
+
:
null
}
{
watched ?
-
-
-
+
+
{
progress !== null && !isNaN(progress) && progress > 0 ?
-
-
+
:
null
diff --git a/src/routes/Detail/VideosList/VideoPlaceholder/VideoPlaceholder.js b/src/routes/Detail/VideosList/VideoPlaceholder/VideoPlaceholder.js
index a0e58abc1..025f78647 100644
--- a/src/routes/Detail/VideosList/VideoPlaceholder/VideoPlaceholder.js
+++ b/src/routes/Detail/VideosList/VideoPlaceholder/VideoPlaceholder.js
@@ -2,17 +2,17 @@ const React = require('react');
const PropTypes = require('prop-types');
const classnames = require('classnames');
const Icon = require('stremio-icons/dom');
-require('./styles');
+const styles = require('./styles');
const VideoPlaceholder = ({ className }) => {
return (
-
-
-
-
+
+
-
);
diff --git a/src/routes/Detail/VideosList/VideosList.js b/src/routes/Detail/VideosList/VideosList.js
index cbaebb859..3c5f3d737 100644
--- a/src/routes/Detail/VideosList/VideosList.js
+++ b/src/routes/Detail/VideosList/VideosList.js
@@ -7,19 +7,19 @@ const SeasonsBarPlaceholder = require('./SeasonsBarPlaceholder');
const Video = require('./Video');
const VideoPlaceholder = require('./VideoPlaceholder');
const useSeasons = require('./useSeasons');
-require('./styles');
+const styles = require('./styles');
const VideosList = ({ className, metaItem }) => {
const [season, seasons, setSeason] = useSeasons(metaItem);
return (
-
+
{
metaItem !== null ?
{
seasons.length > 1 ?
{
:
null
}
-
+
{
metaItem.videos
.filter((video) => isNaN(season) || video.season === season)
@@ -35,7 +35,7 @@ const VideosList = ({ className, metaItem }) => {
))
}
@@ -43,16 +43,16 @@ const VideosList = ({ className, metaItem }) => {
:
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
}