diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 000000000..9ebf8cd88
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,22 @@
+# Stremio Node 14.x
+FROM stremio/node-base:fermium
+
+# Meta
+LABEL Description="Stremio Web" Vendor="Smart Code OOD" Version="1.0.0"
+
+# Create app directory
+RUN mkdir -p /var/www/stremio-web
+
+# Install app dependencies
+WORKDIR /var/www/stremio-web
+COPY . /var/www/stremio-web
+RUN npm install
+RUN npm install -g http-server
+
+# Bundle app source
+WORKDIR /var/www/stremio-web
+
+RUN npm run build
+
+EXPOSE 8080
+CMD ["http-server", "/var/www/stremio-web/build/", "-p", "8080", "-d", "false"]
diff --git a/README.md b/README.md
index 8f920746f..cea3d0fbb 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Stremio - The media center you need
+# Stremio - Freedom to Stream

[](https://stremio-development.netlify.app)
@@ -46,4 +46,4 @@ npm run build
## License
-Stremio is copyright 2017-2020 Smart code and available under GPLv2 license. See the [LICENSE](/LICENSE.md) file in the project for more information.
+Stremio is copyright 2017-2022 Smart code and available under GPLv2 license. See the [LICENSE](/LICENSE.md) file in the project for more information.
diff --git a/package-lock.json b/package-lock.json
index 9b5568b28..0986d2e18 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1833,9 +1833,9 @@
"integrity": "sha512-yT3No1gIWKLV2BhQIeSgG94EzXxmEqXJLulO+pFpziqWNUbmmEKeE+nRvW5wtoIK4SLy+v0bLd0b6HBH3KFfWw=="
},
"@stremio/stremio-core-web": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.30.0.tgz",
- "integrity": "sha512-ClPMHFTbhvNP0zhxM4um5lk/6mXv0DsIFW+n0yiIAigSsLzdCWoME8zWV6eCIde7rnBQu9xuOcNMTOzY9v5Eyg==",
+ "version": "0.35.0",
+ "resolved": "https://registry.npmjs.org/@stremio/stremio-core-web/-/stremio-core-web-0.35.0.tgz",
+ "integrity": "sha512-MN5Mb+5yYV5MQXjzeShqJJeRXc4QLoLP/6TbE6ay6kq8PQ8bT7BreFiFVJunICVo/OmXjYNS3CiJhM5q1J4xZw==",
"requires": {
"@babel/runtime": "7.15.4"
},
@@ -1856,10 +1856,11 @@
"integrity": "sha512-knlcBibqJW2mbEgid6YEeQN9FPkIGAEtozYWqzKWeHd2DPY2nl8kYX2pMQpa2Db/RVSqbVstu/gdey5TtSgGYw=="
},
"@stremio/stremio-video": {
- "version": "0.0.14",
- "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.14.tgz",
- "integrity": "sha512-3Za1GtgRCOnmrTp7mLjGemK35AeH3gAOsKthFdhhYBoSWqrTsUG7HAKBhAGqxI+o/y0UV99CxVab0LzftlMStQ==",
+ "version": "0.0.19-rc.1",
+ "resolved": "https://registry.npmjs.org/@stremio/stremio-video/-/stremio-video-0.0.19-rc.1.tgz",
+ "integrity": "sha512-UiML0reTHcBhb2cddTrw7BqwYnJ7FcjOANltszmcG9Rx6PiJbZdfwZ2CR3VQX91nXbQlpeq81SjPt4WwcdXmuQ==",
"requires": {
+ "color": "4.2.3",
"deep-freeze": "0.0.1",
"eventemitter3": "4.0.7",
"hat": "0.0.3",
@@ -1868,7 +1869,7 @@
"magnet-uri": "6.2.0",
"url": "0.11.0",
"video-name-parser": "1.4.6",
- "vtt.js": "git://github.com/jaruba/vtt.js.git#e4f5f5603730866bacb174a93f51b734c9f29e6a"
+ "vtt.js": "github:jaruba/vtt.js#e4f5f5603730866bacb174a93f51b734c9f29e6a"
}
},
"@tootallnate/once": {
@@ -3198,6 +3199,30 @@
"integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
"dev": true
},
+ "color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "requires": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "dependencies": {
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ }
+ }
+ },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -3210,8 +3235,16 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
},
"colord": {
"version": "2.9.1",
@@ -8924,6 +8957,21 @@
"integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==",
"dev": true
},
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ }
+ }
+ },
"sisteransi": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
@@ -9670,8 +9718,8 @@
"integrity": "sha512-ZdeYjh8X4ms1EzjY/UoiTZ6JWbi8SYyOPGY0jESSLq2BAmdc5sZHi+F8J19Qz0y7H1WSpaltojsCkO1p2dH4YA=="
},
"vtt.js": {
- "version": "git://github.com/jaruba/vtt.js.git#e4f5f5603730866bacb174a93f51b734c9f29e6a",
- "from": "git://github.com/jaruba/vtt.js.git#e4f5f5603730866bacb174a93f51b734c9f29e6a"
+ "version": "github:jaruba/vtt.js#e4f5f5603730866bacb174a93f51b734c9f29e6a",
+ "from": "github:jaruba/vtt.js#e4f5f5603730866bacb174a93f51b734c9f29e6a"
},
"w3c-hr-time": {
"version": "1.0.2",
diff --git a/package.json b/package.json
index 1253b0d25..ad1a598d9 100755
--- a/package.json
+++ b/package.json
@@ -15,9 +15,9 @@
"@babel/runtime": "7.16.0",
"@sentry/browser": "6.13.3",
"@stremio/stremio-colors": "4.0.1",
- "@stremio/stremio-core-web": "0.30.0",
+ "@stremio/stremio-core-web": "0.35.0",
"@stremio/stremio-icons": "3.0.5",
- "@stremio/stremio-video": "0.0.14",
+ "@stremio/stremio-video": "0.0.19-rc.1",
"a-color-picker": "1.2.1",
"buffer": "6.0.3",
"classnames": "2.3.1",
diff --git a/src/App/App.js b/src/App/App.js
index 66b2e968b..a07435d2b 100644
--- a/src/App/App.js
+++ b/src/App/App.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
require('spatial-navigation-polyfill');
const React = require('react');
diff --git a/src/App/CoreEventsToaster.js b/src/App/CoreEventsToaster.js
index 9819d4d5d..0e45d2b7a 100644
--- a/src/App/CoreEventsToaster.js
+++ b/src/App/CoreEventsToaster.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/App/ErrorDialog/ErrorDialog.js b/src/App/ErrorDialog/ErrorDialog.js
index bfa904e2b..ac25d5879 100644
--- a/src/App/ErrorDialog/ErrorDialog.js
+++ b/src/App/ErrorDialog/ErrorDialog.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/App/ErrorDialog/index.js b/src/App/ErrorDialog/index.js
index 5f8f12af0..2f08dec84 100644
--- a/src/App/ErrorDialog/index.js
+++ b/src/App/ErrorDialog/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ErrorDialog = require('./ErrorDialog');
diff --git a/src/App/ErrorDialog/styles.less b/src/App/ErrorDialog/styles.less
index 8f9b120a5..ef3cda8c9 100644
--- a/src/App/ErrorDialog/styles.less
+++ b/src/App/ErrorDialog/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/App/index.js b/src/App/index.js
index 37eced502..a71129d83 100644
--- a/src/App/index.js
+++ b/src/App/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const App = require('./App');
diff --git a/src/App/routerViewsConfig.js b/src/App/routerViewsConfig.js
index c373c4094..9b568a0f8 100644
--- a/src/App/routerViewsConfig.js
+++ b/src/App/routerViewsConfig.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const routes = require('stremio/routes');
const { routesRegexp } = require('stremio/common');
diff --git a/src/App/styles.less b/src/App/styles.less
index 8cea6cd21..9cc75f671 100644
--- a/src/App/styles.less
+++ b/src/App/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (inline, once, css) '~stremio/common/roboto.css';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/common/AddonDetailsModal/AddonDetails/AddonDetails.js b/src/common/AddonDetailsModal/AddonDetails/AddonDetails.js
index 80c0ef98c..635466938 100644
--- a/src/common/AddonDetailsModal/AddonDetails/AddonDetails.js
+++ b/src/common/AddonDetailsModal/AddonDetails/AddonDetails.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/AddonDetailsModal/AddonDetails/index.js b/src/common/AddonDetailsModal/AddonDetails/index.js
index 63b9be8a7..69e5ced8b 100644
--- a/src/common/AddonDetailsModal/AddonDetails/index.js
+++ b/src/common/AddonDetailsModal/AddonDetails/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const AddonDetails = require('./AddonDetails');
diff --git a/src/common/AddonDetailsModal/AddonDetails/styles.less b/src/common/AddonDetailsModal/AddonDetails/styles.less
index 702e55d73..3cd575683 100644
--- a/src/common/AddonDetailsModal/AddonDetails/styles.less
+++ b/src/common/AddonDetailsModal/AddonDetails/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/common/AddonDetailsModal/AddonDetailsModal.js b/src/common/AddonDetailsModal/AddonDetailsModal.js
index 9a0ee12ff..25a4acd54 100644
--- a/src/common/AddonDetailsModal/AddonDetailsModal.js
+++ b/src/common/AddonDetailsModal/AddonDetailsModal.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/AddonDetailsModal/index.js b/src/common/AddonDetailsModal/index.js
index ca8a9c817..8fcb197aa 100644
--- a/src/common/AddonDetailsModal/index.js
+++ b/src/common/AddonDetailsModal/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const AddonDetailsModal = require('./AddonDetailsModal');
diff --git a/src/common/AddonDetailsModal/styles.less b/src/common/AddonDetailsModal/styles.less
index 6a537b546..47ee1a286 100644
--- a/src/common/AddonDetailsModal/styles.less
+++ b/src/common/AddonDetailsModal/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/common/AddonDetailsModal/useAddonDetails.js b/src/common/AddonDetailsModal/useAddonDetails.js
index 6b3ef4eff..b0bf251d3 100644
--- a/src/common/AddonDetailsModal/useAddonDetails.js
+++ b/src/common/AddonDetailsModal/useAddonDetails.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const useModelState = require('stremio/common/useModelState');
diff --git a/src/common/Button/Button.js b/src/common/Button/Button.js
index 4ac3e2307..03c0f33ef 100644
--- a/src/common/Button/Button.js
+++ b/src/common/Button/Button.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/Button/index.js b/src/common/Button/index.js
index 57040cb11..05ea41a5a 100644
--- a/src/common/Button/index.js
+++ b/src/common/Button/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Button = require('./Button');
diff --git a/src/common/Button/styles.less b/src/common/Button/styles.less
index 3a23bf619..734368666 100644
--- a/src/common/Button/styles.less
+++ b/src/common/Button/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/common/CONSTANTS.js b/src/common/CONSTANTS.js
index ff9d18e58..e755790bb 100644
--- a/src/common/CONSTANTS.js
+++ b/src/common/CONSTANTS.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const CHROMECAST_RECEIVER_APP_ID = '1634F54B';
const SUBTITLES_SIZES = [75, 100, 125, 150, 175, 200, 250];
@@ -11,6 +11,7 @@ const SKIP_EXTRA_NAME = 'skip';
const META_LINK_CATEGORY = 'meta';
const IMDB_LINK_CATEGORY = 'imdb';
const SHARE_LINK_CATEGORY = 'share';
+const WRITERS_LINK_CATEGORY = 'Writers';
const TYPE_PRIORITIES = {
movie: 10,
series: 9,
@@ -37,5 +38,6 @@ module.exports = {
META_LINK_CATEGORY,
IMDB_LINK_CATEGORY,
SHARE_LINK_CATEGORY,
+ WRITERS_LINK_CATEGORY,
TYPE_PRIORITIES
};
diff --git a/src/common/Checkbox/Checkbox.js b/src/common/Checkbox/Checkbox.js
index dad656187..33d77dadc 100644
--- a/src/common/Checkbox/Checkbox.js
+++ b/src/common/Checkbox/Checkbox.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/Checkbox/index.js b/src/common/Checkbox/index.js
index 76bac8c7f..8e8ae7ab8 100644
--- a/src/common/Checkbox/index.js
+++ b/src/common/Checkbox/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Checkbox = require('./Checkbox');
diff --git a/src/common/Checkbox/styles.less b/src/common/Checkbox/styles.less
index be835f368..cb3eaaf35 100644
--- a/src/common/Checkbox/styles.less
+++ b/src/common/Checkbox/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/common/ColorInput/ColorInput.js b/src/common/ColorInput/ColorInput.js
index c65403da7..1c5d450bc 100644
--- a/src/common/ColorInput/ColorInput.js
+++ b/src/common/ColorInput/ColorInput.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/ColorInput/ColorPicker/ColorPicker.js b/src/common/ColorInput/ColorPicker/ColorPicker.js
index b775b38dc..c83234fe9 100644
--- a/src/common/ColorInput/ColorPicker/ColorPicker.js
+++ b/src/common/ColorInput/ColorPicker/ColorPicker.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/ColorInput/ColorPicker/index.js b/src/common/ColorInput/ColorPicker/index.js
index 39ea51ed1..de9b8b38f 100644
--- a/src/common/ColorInput/ColorPicker/index.js
+++ b/src/common/ColorInput/ColorPicker/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ColorPicker = require('./ColorPicker');
diff --git a/src/common/ColorInput/ColorPicker/styles.less b/src/common/ColorInput/ColorPicker/styles.less
index 29ea37669..ddd9a12b2 100644
--- a/src/common/ColorInput/ColorPicker/styles.less
+++ b/src/common/ColorInput/ColorPicker/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
.color-picker-container {
overflow: visible;
diff --git a/src/common/ColorInput/index.js b/src/common/ColorInput/index.js
index 1b8f50015..47d97f88a 100644
--- a/src/common/ColorInput/index.js
+++ b/src/common/ColorInput/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ColorInput = require('./ColorInput');
diff --git a/src/common/ColorInput/styles.less b/src/common/ColorInput/styles.less
index 11bcada68..31096d5f2 100644
--- a/src/common/ColorInput/styles.less
+++ b/src/common/ColorInput/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/common/Image/Image.js b/src/common/Image/Image.js
index b275344f7..583dd97d8 100644
--- a/src/common/Image/Image.js
+++ b/src/common/Image/Image.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/Image/index.js b/src/common/Image/index.js
index 6fe1156c2..c063ade86 100644
--- a/src/common/Image/index.js
+++ b/src/common/Image/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Image = require('./Image');
diff --git a/src/common/LibItem/LibItem.js b/src/common/LibItem/LibItem.js
index 74593fea7..49c225c51 100644
--- a/src/common/LibItem/LibItem.js
+++ b/src/common/LibItem/LibItem.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/common/LibItem/index.js b/src/common/LibItem/index.js
index 69c571713..1a5ea6687 100644
--- a/src/common/LibItem/index.js
+++ b/src/common/LibItem/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const LibItem = require('./LibItem');
diff --git a/src/common/MainNavBars/MainNavBars.js b/src/common/MainNavBars/MainNavBars.js
index 79ac017d2..f9311c6d6 100644
--- a/src/common/MainNavBars/MainNavBars.js
+++ b/src/common/MainNavBars/MainNavBars.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/MainNavBars/index.js b/src/common/MainNavBars/index.js
index 39fcb76ba..0ef95a96d 100644
--- a/src/common/MainNavBars/index.js
+++ b/src/common/MainNavBars/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const MainNavBars = require('./MainNavBars');
diff --git a/src/common/MetaItem/MetaItem.js b/src/common/MetaItem/MetaItem.js
index 172b3fb03..7acc7281d 100644
--- a/src/common/MetaItem/MetaItem.js
+++ b/src/common/MetaItem/MetaItem.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/MetaItem/index.js b/src/common/MetaItem/index.js
index f0b09ba3a..2b1473424 100644
--- a/src/common/MetaItem/index.js
+++ b/src/common/MetaItem/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const MetaItem = require('./MetaItem');
diff --git a/src/common/MetaItem/styles.less b/src/common/MetaItem/styles.less
index 86c777a98..749896268 100644
--- a/src/common/MetaItem/styles.less
+++ b/src/common/MetaItem/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/common/MetaPreview/ActionButton/ActionButton.js b/src/common/MetaPreview/ActionButton/ActionButton.js
index 8c7461c20..7b4aab9f7 100644
--- a/src/common/MetaPreview/ActionButton/ActionButton.js
+++ b/src/common/MetaPreview/ActionButton/ActionButton.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/MetaPreview/ActionButton/index.js b/src/common/MetaPreview/ActionButton/index.js
index e064970df..c70e8e48e 100644
--- a/src/common/MetaPreview/ActionButton/index.js
+++ b/src/common/MetaPreview/ActionButton/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ActionButton = require('./ActionButton');
diff --git a/src/common/MetaPreview/ActionButton/styles.less b/src/common/MetaPreview/ActionButton/styles.less
index d746f41f5..720c735fc 100644
--- a/src/common/MetaPreview/ActionButton/styles.less
+++ b/src/common/MetaPreview/ActionButton/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/common/MetaPreview/MetaLinks/MetaLinks.js b/src/common/MetaPreview/MetaLinks/MetaLinks.js
index 67e904ebd..cf0ec88c2 100644
--- a/src/common/MetaPreview/MetaLinks/MetaLinks.js
+++ b/src/common/MetaPreview/MetaLinks/MetaLinks.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/common/MetaPreview/MetaLinks/index.js b/src/common/MetaPreview/MetaLinks/index.js
index 79ce3ae97..208dd4eed 100644
--- a/src/common/MetaPreview/MetaLinks/index.js
+++ b/src/common/MetaPreview/MetaLinks/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const MetaLinks = require('./MetaLinks');
diff --git a/src/common/MetaPreview/MetaLinks/styles.less b/src/common/MetaPreview/MetaLinks/styles.less
index b066174e5..26c89ec33 100644
--- a/src/common/MetaPreview/MetaLinks/styles.less
+++ b/src/common/MetaPreview/MetaLinks/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/common/MetaPreview/MetaPreview.js b/src/common/MetaPreview/MetaPreview.js
index a9424b8fd..ee1b2bcf5 100644
--- a/src/common/MetaPreview/MetaPreview.js
+++ b/src/common/MetaPreview/MetaPreview.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
@@ -93,8 +93,8 @@ const MetaPreview = ({ className, compact, name, logo, background, runtime, rele
return trailerStreams[0].deepLinks.player;
}, [trailerStreams]);
const renderLogoFallback = React.useCallback(() => (
-
- ), []);
+
{!compact ? name : null}
+ ), [compact, name]);
return (
{
@@ -112,6 +112,7 @@ const MetaPreview = ({ className, compact, name, logo, background, runtime, rele
className={styles['logo']}
src={logo}
alt={' '}
+ title={name}
renderFallback={renderLogoFallback}
/>
:
@@ -155,7 +156,7 @@ const MetaPreview = ({ className, compact, name, logo, background, runtime, rele
null
}
{
- typeof name === 'string' && name.length > 0 ?
+ compact && typeof name === 'string' && name.length > 0 ?
{name}
@@ -163,7 +164,7 @@ const MetaPreview = ({ className, compact, name, logo, background, runtime, rele
null
}
{
- typeof description === 'string' && description.length > 0 ?
+ compact && typeof description === 'string' && description.length > 0 ?
{description}
:
null
@@ -172,7 +173,8 @@ const MetaPreview = ({ className, compact, name, logo, background, runtime, rele
Array.from(linksGroups.keys())
.filter((category) => {
return category !== CONSTANTS.IMDB_LINK_CATEGORY &&
- category !== CONSTANTS.SHARE_LINK_CATEGORY;
+ category !== CONSTANTS.SHARE_LINK_CATEGORY &&
+ category !== CONSTANTS.WRITERS_LINK_CATEGORY;
})
.map((category, index) => (
{
return (a, b) => {
diff --git a/src/common/index.js b/src/common/index.js
index 19fa9bafd..bcd66a99b 100644
--- a/src/common/index.js
+++ b/src/common/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const AddonDetailsModal = require('./AddonDetailsModal');
const Button = require('./Button');
diff --git a/src/common/routesRegexp.js b/src/common/routesRegexp.js
index 5642f4248..d15bc7d46 100644
--- a/src/common/routesRegexp.js
+++ b/src/common/routesRegexp.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const routesRegexp = {
intro: {
diff --git a/src/common/sanitizeLocationPath.js b/src/common/sanitizeLocationPath.js
index cddc5fc75..e45f1e15b 100644
--- a/src/common/sanitizeLocationPath.js
+++ b/src/common/sanitizeLocationPath.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const UrlUtils = require('url');
const routesRegexp = require('stremio/common/routesRegexp');
diff --git a/src/common/screen-sizes.less b/src/common/screen-sizes.less
index fe3150761..5d247e82c 100644
--- a/src/common/screen-sizes.less
+++ b/src/common/screen-sizes.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@minimum: 640px;
@xxsmall: 800px;
diff --git a/src/common/useAnimationFrame.js b/src/common/useAnimationFrame.js
index 4588f4d60..41e02bfea 100644
--- a/src/common/useAnimationFrame.js
+++ b/src/common/useAnimationFrame.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/common/useBinaryState.js b/src/common/useBinaryState.js
index 8817e318d..48656fa9d 100644
--- a/src/common/useBinaryState.js
+++ b/src/common/useBinaryState.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/common/useDeepEqualEffect.js b/src/common/useDeepEqualEffect.js
index 5560fb3e6..095576356 100644
--- a/src/common/useDeepEqualEffect.js
+++ b/src/common/useDeepEqualEffect.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const useDeepEqualMemo = require('stremio/common/useDeepEqualMemo');
diff --git a/src/common/useDeepEqualMemo.js b/src/common/useDeepEqualMemo.js
index e0242603f..00f5e72ce 100644
--- a/src/common/useDeepEqualMemo.js
+++ b/src/common/useDeepEqualMemo.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const isEqual = require('lodash.isequal');
diff --git a/src/common/useDeepEqualState.js b/src/common/useDeepEqualState.js
index dc7f766ec..edd762b46 100644
--- a/src/common/useDeepEqualState.js
+++ b/src/common/useDeepEqualState.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const isEqual = require('lodash.isequal');
diff --git a/src/common/useFullscreen.js b/src/common/useFullscreen.js
index 3b0d9342e..4e54ee006 100644
--- a/src/common/useFullscreen.js
+++ b/src/common/useFullscreen.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/common/useLiveRef.js b/src/common/useLiveRef.js
index 7b989e6ee..1abe3dd60 100644
--- a/src/common/useLiveRef.js
+++ b/src/common/useLiveRef.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/common/useModelState.js b/src/common/useModelState.js
index ff8044809..75e2ab634 100644
--- a/src/common/useModelState.js
+++ b/src/common/useModelState.js
@@ -1,10 +1,10 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const throttle = require('lodash.throttle');
+const isEqual = require('lodash.isequal');
const { useRouteFocused } = require('stremio-router');
const { useServices } = require('stremio/services');
-const useDeepEqualState = require('stremio/common/useDeepEqualState');
const useModelState = ({ init, action, ...args }) => {
const { core } = useServices();
@@ -13,7 +13,21 @@ const useModelState = ({ init, action, ...args }) => {
const [model, timeout, map] = React.useMemo(() => {
return [args.model, args.timeout, args.map];
}, []);
- const [state, setState] = useDeepEqualState(init);
+ const [state, setState] = React.useReducer(
+ (prevState, nextState) => {
+ return Object.keys(prevState).reduce((result, key) => {
+ result[key] = isEqual(prevState[key], nextState[key]) ? prevState[key] : nextState[key];
+ return result;
+ }, {});
+ },
+ undefined,
+ () => {
+ return typeof init === 'function' ?
+ init()
+ :
+ init;
+ }
+ );
React.useLayoutEffect(() => {
if (action) {
core.transport.dispatch(action, model);
diff --git a/src/common/useProfile.js b/src/common/useProfile.js
index 3ac03ee42..cbd60b36c 100644
--- a/src/common/useProfile.js
+++ b/src/common/useProfile.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/common/useStreamingServer.js b/src/common/useStreamingServer.js
index cb60ec83a..a8cf71596 100644
--- a/src/common/useStreamingServer.js
+++ b/src/common/useStreamingServer.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/index.js b/src/index.js
index 324e69416..c948e3285 100755
--- a/src/index.js
+++ b/src/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
if (typeof process.env.SENTRY_DSN === 'string') {
const Sentry = require('@sentry/browser');
diff --git a/src/router/Modal/Modal.js b/src/router/Modal/Modal.js
index 59c4f0c93..ed76f2e71 100644
--- a/src/router/Modal/Modal.js
+++ b/src/router/Modal/Modal.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const ReactDOM = require('react-dom');
diff --git a/src/router/Modal/index.js b/src/router/Modal/index.js
index 6ba60b5bb..af4f5e792 100644
--- a/src/router/Modal/index.js
+++ b/src/router/Modal/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Modal = require('./Modal');
diff --git a/src/router/ModalsContainerContext/ModalsContainerContext.js b/src/router/ModalsContainerContext/ModalsContainerContext.js
index c3479bcd5..643c7a20d 100644
--- a/src/router/ModalsContainerContext/ModalsContainerContext.js
+++ b/src/router/ModalsContainerContext/ModalsContainerContext.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/router/ModalsContainerContext/ModalsContainerProvider.js b/src/router/ModalsContainerContext/ModalsContainerProvider.js
index e66a93347..87274e31b 100644
--- a/src/router/ModalsContainerContext/ModalsContainerProvider.js
+++ b/src/router/ModalsContainerContext/ModalsContainerProvider.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/router/ModalsContainerContext/index.js b/src/router/ModalsContainerContext/index.js
index b192efadf..738f50a1c 100644
--- a/src/router/ModalsContainerContext/index.js
+++ b/src/router/ModalsContainerContext/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ModalsContainerProvider = require('./ModalsContainerProvider');
const useModalsContainer = require('./useModalsContainer');
diff --git a/src/router/ModalsContainerContext/useModalsContainer.js b/src/router/ModalsContainerContext/useModalsContainer.js
index 17a22b83c..1c54ab403 100644
--- a/src/router/ModalsContainerContext/useModalsContainer.js
+++ b/src/router/ModalsContainerContext/useModalsContainer.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const ModalsContainerContext = require('./ModalsContainerContext');
diff --git a/src/router/Route/Route.js b/src/router/Route/Route.js
index 1ffa0a439..701dc693e 100644
--- a/src/router/Route/Route.js
+++ b/src/router/Route/Route.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/router/Route/index.js b/src/router/Route/index.js
index a5a4c27c2..12a854191 100644
--- a/src/router/Route/index.js
+++ b/src/router/Route/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Route = require('./Route');
diff --git a/src/router/RouteFocusedContext/RouteFocusedContext.js b/src/router/RouteFocusedContext/RouteFocusedContext.js
index cca3ada13..22b283398 100644
--- a/src/router/RouteFocusedContext/RouteFocusedContext.js
+++ b/src/router/RouteFocusedContext/RouteFocusedContext.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/router/RouteFocusedContext/index.js b/src/router/RouteFocusedContext/index.js
index 93132b653..2f494c087 100644
--- a/src/router/RouteFocusedContext/index.js
+++ b/src/router/RouteFocusedContext/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const RouteFocusedContext = require('./RouteFocusedContext');
const useRouteFocused = require('./useRouteFocused');
diff --git a/src/router/RouteFocusedContext/useRouteFocused.js b/src/router/RouteFocusedContext/useRouteFocused.js
index b14799d80..4a965c345 100644
--- a/src/router/RouteFocusedContext/useRouteFocused.js
+++ b/src/router/RouteFocusedContext/useRouteFocused.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const RouteFocusedContext = require('./RouteFocusedContext');
diff --git a/src/router/Router/Router.js b/src/router/Router/Router.js
index 1adc096fd..9a1a815b1 100644
--- a/src/router/Router/Router.js
+++ b/src/router/Router/Router.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const ReactIs = require('react-is');
diff --git a/src/router/Router/index.js b/src/router/Router/index.js
index 8e08c45b6..8bd17750c 100644
--- a/src/router/Router/index.js
+++ b/src/router/Router/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Router = require('./Router');
diff --git a/src/router/Router/routeConfigForPath.js b/src/router/Router/routeConfigForPath.js
index 221257a4e..15cef7f26 100644
--- a/src/router/Router/routeConfigForPath.js
+++ b/src/router/Router/routeConfigForPath.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const routeConfigForPath = (viewsConfig, path) => {
for (const viewConfig of viewsConfig) {
diff --git a/src/router/Router/urlParamsForPath.js b/src/router/Router/urlParamsForPath.js
index 568fa81a1..75c080199 100644
--- a/src/router/Router/urlParamsForPath.js
+++ b/src/router/Router/urlParamsForPath.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const urlParamsForPath = (routeConfig, path) => {
const matches = path.match(routeConfig.regexp);
diff --git a/src/router/index.js b/src/router/index.js
index 627dc27f2..55c4fc77a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const { useRouteFocused } = require('./RouteFocusedContext');
const { useModalsContainer } = require('./ModalsContainerContext');
diff --git a/src/router/styles.css b/src/router/styles.css
index ac25562fe..7c2ab5a32 100644
--- a/src/router/styles.css
+++ b/src/router/styles.css
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2020 Smart code 203358507 */
+/* Copyright (C) 2017-2022 Smart code 203358507 */
.routes-container {
position: relative;
@@ -41,4 +41,4 @@
left: 0;
z-index: 1;
overflow: hidden;
-}
\ No newline at end of file
+}
diff --git a/src/routes/Addons/Addon/Addon.js b/src/routes/Addons/Addon/Addon.js
index b7ce255b5..a330f9d8d 100644
--- a/src/routes/Addons/Addon/Addon.js
+++ b/src/routes/Addons/Addon/Addon.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Addons/Addon/index.js b/src/routes/Addons/Addon/index.js
index f887e69a1..ff649545f 100644
--- a/src/routes/Addons/Addon/index.js
+++ b/src/routes/Addons/Addon/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Addon = require('./Addon');
diff --git a/src/routes/Addons/Addon/styles.less b/src/routes/Addons/Addon/styles.less
index 6b0bc89ed..c005cca69 100644
--- a/src/routes/Addons/Addon/styles.less
+++ b/src/routes/Addons/Addon/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Addons/Addons.js b/src/routes/Addons/Addons.js
index 4b7e9f53a..d2642a52d 100644
--- a/src/routes/Addons/Addons.js
+++ b/src/routes/Addons/Addons.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Addons/index.js b/src/routes/Addons/index.js
index 2093f5cf8..27a471afb 100644
--- a/src/routes/Addons/index.js
+++ b/src/routes/Addons/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Addons = require('./Addons');
diff --git a/src/routes/Addons/styles.less b/src/routes/Addons/styles.less
index 7bd05c396..405a4add9 100644
--- a/src/routes/Addons/styles.less
+++ b/src/routes/Addons/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Addons/useAddonDetailsTransportUrl.js b/src/routes/Addons/useAddonDetailsTransportUrl.js
index 6b377b778..cb50fb640 100644
--- a/src/routes/Addons/useAddonDetailsTransportUrl.js
+++ b/src/routes/Addons/useAddonDetailsTransportUrl.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/Addons/useInstalledAddons.js b/src/routes/Addons/useInstalledAddons.js
index 9df92ebe7..8be193982 100644
--- a/src/routes/Addons/useInstalledAddons.js
+++ b/src/routes/Addons/useInstalledAddons.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/routes/Addons/useRemoteAddons.js b/src/routes/Addons/useRemoteAddons.js
index dff86b77d..f6bc023d1 100644
--- a/src/routes/Addons/useRemoteAddons.js
+++ b/src/routes/Addons/useRemoteAddons.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useModelState } = require('stremio/common');
diff --git a/src/routes/Addons/useSelectableInputs.js b/src/routes/Addons/useSelectableInputs.js
index 2d2a3176f..c823957b3 100644
--- a/src/routes/Addons/useSelectableInputs.js
+++ b/src/routes/Addons/useSelectableInputs.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/Board/Board.js b/src/routes/Board/Board.js
index 07d5d87ee..fef7ae766 100644
--- a/src/routes/Board/Board.js
+++ b/src/routes/Board/Board.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const classnames = require('classnames');
diff --git a/src/routes/Board/index.js b/src/routes/Board/index.js
index 252306a06..58c9b0b60 100644
--- a/src/routes/Board/index.js
+++ b/src/routes/Board/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Board = require('./Board');
diff --git a/src/routes/Board/styles.less b/src/routes/Board/styles.less
index c7d2fdbd6..2812bb1c7 100644
--- a/src/routes/Board/styles.less
+++ b/src/routes/Board/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Board/useBoard.js b/src/routes/Board/useBoard.js
index 3ba0351b0..d0d78ed2c 100644
--- a/src/routes/Board/useBoard.js
+++ b/src/routes/Board/useBoard.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useModelState } = require('stremio/common');
diff --git a/src/routes/Board/useContinueWatchingPreview.js b/src/routes/Board/useContinueWatchingPreview.js
index d5f08f221..a505ef737 100644
--- a/src/routes/Board/useContinueWatchingPreview.js
+++ b/src/routes/Board/useContinueWatchingPreview.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useServices } = require('stremio/services');
diff --git a/src/routes/Discover/Discover.js b/src/routes/Discover/Discover.js
index 8f4ecc314..b42c9a3a9 100644
--- a/src/routes/Discover/Discover.js
+++ b/src/routes/Discover/Discover.js
@@ -1,11 +1,11 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
const classnames = require('classnames');
const Icon = require('@stremio/stremio-icons/dom');
const { useServices } = require('stremio/services');
-const { AddonDetailsModal, Button, MainNavBars, MetaItem, Image, MetaPreview, Multiselect, ModalDialog, PaginationInput, CONSTANTS, useBinaryState, useDeepEqualEffect } = require('stremio/common');
+const { AddonDetailsModal, Button, MainNavBars, MetaItem, Image, MetaPreview, Multiselect, ModalDialog, PaginationInput, CONSTANTS, useBinaryState } = require('stremio/common');
const useDiscover = require('./useDiscover');
const useSelectableInputs = require('./useSelectableInputs');
const styles = require('./styles');
@@ -62,7 +62,7 @@ const Discover = ({ urlParams, queryParams }) => {
event.currentTarget.focus();
}
}, [selectedMetaItemIndex]);
- useDeepEqualEffect(() => {
+ React.useEffect(() => {
closeInputsModal();
closeAddonModal();
setSelectedMetaItemIndex(0);
@@ -70,7 +70,7 @@ const Discover = ({ urlParams, queryParams }) => {
const metaItemsContainerRef = React.useRef();
React.useEffect(() => {
if (discover.catalog?.content.type === 'Loading') {
- metaItemsContainerRef.current.scrollTo(0, 0);
+ metaItemsContainerRef.current.scrollTop = 0;
}
}, [discover.catalog]);
return (
diff --git a/src/routes/Discover/index.js b/src/routes/Discover/index.js
index a578bfeeb..3cb75063e 100644
--- a/src/routes/Discover/index.js
+++ b/src/routes/Discover/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Discover = require('./Discover');
diff --git a/src/routes/Discover/styles.less b/src/routes/Discover/styles.less
index fa6e49b3d..7e6c28514 100644
--- a/src/routes/Discover/styles.less
+++ b/src/routes/Discover/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Discover/useDiscover.js b/src/routes/Discover/useDiscover.js
index 18db17401..995a63cc9 100644
--- a/src/routes/Discover/useDiscover.js
+++ b/src/routes/Discover/useDiscover.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const UrlUtils = require('url');
diff --git a/src/routes/Discover/useSelectableInputs.js b/src/routes/Discover/useSelectableInputs.js
index e3136930e..17e45afdc 100644
--- a/src/routes/Discover/useSelectableInputs.js
+++ b/src/routes/Discover/useSelectableInputs.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/Intro/ConsentCheckbox/ConsentCheckbox.js b/src/routes/Intro/ConsentCheckbox/ConsentCheckbox.js
index 4175a94ac..c93daf158 100644
--- a/src/routes/Intro/ConsentCheckbox/ConsentCheckbox.js
+++ b/src/routes/Intro/ConsentCheckbox/ConsentCheckbox.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Intro/ConsentCheckbox/index.js b/src/routes/Intro/ConsentCheckbox/index.js
index 2428b004c..54f2fc531 100644
--- a/src/routes/Intro/ConsentCheckbox/index.js
+++ b/src/routes/Intro/ConsentCheckbox/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const ConsentCheckbox = require('./ConsentCheckbox');
diff --git a/src/routes/Intro/ConsentCheckbox/styles.less b/src/routes/Intro/ConsentCheckbox/styles.less
index fd3084fe2..ba2fafe2c 100644
--- a/src/routes/Intro/ConsentCheckbox/styles.less
+++ b/src/routes/Intro/ConsentCheckbox/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/routes/Intro/CredentialsTextInput/CredentialsTextInput.js b/src/routes/Intro/CredentialsTextInput/CredentialsTextInput.js
index 88e15e219..f190986fa 100644
--- a/src/routes/Intro/CredentialsTextInput/CredentialsTextInput.js
+++ b/src/routes/Intro/CredentialsTextInput/CredentialsTextInput.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Intro/CredentialsTextInput/index.js b/src/routes/Intro/CredentialsTextInput/index.js
index b1bb16b77..97a5d1a04 100644
--- a/src/routes/Intro/CredentialsTextInput/index.js
+++ b/src/routes/Intro/CredentialsTextInput/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const CredentialsTextInput = require('./CredentialsTextInput');
diff --git a/src/routes/Intro/Intro.js b/src/routes/Intro/Intro.js
index da3775331..a97a113f8 100644
--- a/src/routes/Intro/Intro.js
+++ b/src/routes/Intro/Intro.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Intro/PasswordResetModal/PasswordResetModal.js b/src/routes/Intro/PasswordResetModal/PasswordResetModal.js
index c2fa17350..f5eaab7e7 100644
--- a/src/routes/Intro/PasswordResetModal/PasswordResetModal.js
+++ b/src/routes/Intro/PasswordResetModal/PasswordResetModal.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Intro/PasswordResetModal/index.js b/src/routes/Intro/PasswordResetModal/index.js
index 35e8b345b..9401ac939 100644
--- a/src/routes/Intro/PasswordResetModal/index.js
+++ b/src/routes/Intro/PasswordResetModal/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const PasswordResetModal = require('./PasswordResetModal');
diff --git a/src/routes/Intro/PasswordResetModal/styles.less b/src/routes/Intro/PasswordResetModal/styles.less
index c1ffac0d4..97339c067 100644
--- a/src/routes/Intro/PasswordResetModal/styles.less
+++ b/src/routes/Intro/PasswordResetModal/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Intro/index.js b/src/routes/Intro/index.js
index da2432b76..5b75f9913 100644
--- a/src/routes/Intro/index.js
+++ b/src/routes/Intro/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Intro = require('./Intro');
diff --git a/src/routes/Intro/styles.less b/src/routes/Intro/styles.less
index 7f2f3b5eb..752060fa0 100644
--- a/src/routes/Intro/styles.less
+++ b/src/routes/Intro/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Intro/useFacebookToken.js b/src/routes/Intro/useFacebookToken.js
index 821100bdf..fe62b5341 100644
--- a/src/routes/Intro/useFacebookToken.js
+++ b/src/routes/Intro/useFacebookToken.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/Library/Library.js b/src/routes/Library/Library.js
index dd9558946..032366b0d 100644
--- a/src/routes/Library/Library.js
+++ b/src/routes/Library/Library.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Library/index.js b/src/routes/Library/index.js
index b67ea1773..37f9d2a8e 100644
--- a/src/routes/Library/index.js
+++ b/src/routes/Library/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Library = require('./Library');
diff --git a/src/routes/Library/styles.less b/src/routes/Library/styles.less
index 52289420f..d9a4179c4 100644
--- a/src/routes/Library/styles.less
+++ b/src/routes/Library/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/Library/useLibrary.js b/src/routes/Library/useLibrary.js
index 30e1b6571..cff44771d 100644
--- a/src/routes/Library/useLibrary.js
+++ b/src/routes/Library/useLibrary.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useModelState } = require('stremio/common');
diff --git a/src/routes/Library/useSelectableInputs.js b/src/routes/Library/useSelectableInputs.js
index e04eadf8c..6f3d58d7e 100644
--- a/src/routes/Library/useSelectableInputs.js
+++ b/src/routes/Library/useSelectableInputs.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/MetaDetails/MetaDetails.js b/src/routes/MetaDetails/MetaDetails.js
index c83c3f756..602bdd3c8 100644
--- a/src/routes/MetaDetails/MetaDetails.js
+++ b/src/routes/MetaDetails/MetaDetails.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
@@ -63,6 +63,7 @@ const MetaDetails = ({ urlParams, queryParams }) => {
const seasonOnSelect = React.useCallback((event) => {
setSeason(event.value);
}, [setSeason]);
+ const renderBackgroundImageFallback = React.useCallback(() => null, []);
return (
{
diff --git a/src/routes/MetaDetails/StreamsList/Stream/Stream.js b/src/routes/MetaDetails/StreamsList/Stream/Stream.js
index 631085b8b..97cac4150 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/Stream.js
+++ b/src/routes/MetaDetails/StreamsList/Stream/Stream.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/StreamPlaceholder.js b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/StreamPlaceholder.js
index a67d0b9b4..fc0674733 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/StreamPlaceholder.js
+++ b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/StreamPlaceholder.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/index.js b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/index.js
index 5e9b29bd6..65cc317cc 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/index.js
+++ b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const StreamPlaceholder = require('./StreamPlaceholder');
diff --git a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/styles.less b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/styles.less
index 674490bd0..264f676cc 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/styles.less
+++ b/src/routes/MetaDetails/StreamsList/Stream/StreamPlaceholder/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
:import('~stremio/common/PlayIconCircleCentered/styles.less') {
play-icon-circle-centered-background: background;
diff --git a/src/routes/MetaDetails/StreamsList/Stream/index.js b/src/routes/MetaDetails/StreamsList/Stream/index.js
index 5800392ad..aa46e47cc 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/index.js
+++ b/src/routes/MetaDetails/StreamsList/Stream/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Stream = require('./Stream');
diff --git a/src/routes/MetaDetails/StreamsList/Stream/styles.less b/src/routes/MetaDetails/StreamsList/Stream/styles.less
index 07a950566..081109c24 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/styles.less
+++ b/src/routes/MetaDetails/StreamsList/Stream/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/MetaDetails/StreamsList/StreamsList.js b/src/routes/MetaDetails/StreamsList/StreamsList.js
index e9aeec131..e62c26633 100644
--- a/src/routes/MetaDetails/StreamsList/StreamsList.js
+++ b/src/routes/MetaDetails/StreamsList/StreamsList.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/StreamsList/index.js b/src/routes/MetaDetails/StreamsList/index.js
index 51956d181..4a37ec7f3 100644
--- a/src/routes/MetaDetails/StreamsList/index.js
+++ b/src/routes/MetaDetails/StreamsList/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const StreamsList = require('./StreamsList');
diff --git a/src/routes/MetaDetails/StreamsList/styles.less b/src/routes/MetaDetails/StreamsList/styles.less
index aeeef38f5..17b7c9a65 100644
--- a/src/routes/MetaDetails/StreamsList/styles.less
+++ b/src/routes/MetaDetails/StreamsList/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBar.js b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBar.js
index 0a8bd91df..53c93db5d 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBar.js
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBar.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
index 904105299..e7ca8db90 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/SeasonsBarPlaceholder.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/index.js b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/index.js
index d58d1aef9..a5bec0487 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/index.js
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const SeasonsBarPlaceholder = require('./SeasonsBarPlaceholder');
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/styles.less b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/styles.less
index 370f2de77..5946dbbd3 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/styles.less
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/SeasonsBarPlaceholder/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
.seasons-bar-placeholder-container {
display: flex;
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/index.js b/src/routes/MetaDetails/VideosList/SeasonsBar/index.js
index d50edbbc6..c88576024 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/index.js
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const SeasonsBar = require('./SeasonsBar');
diff --git a/src/routes/MetaDetails/VideosList/SeasonsBar/styles.less b/src/routes/MetaDetails/VideosList/SeasonsBar/styles.less
index 666ebcccf..88e4c7376 100644
--- a/src/routes/MetaDetails/VideosList/SeasonsBar/styles.less
+++ b/src/routes/MetaDetails/VideosList/SeasonsBar/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/MetaDetails/VideosList/Video/Video.js b/src/routes/MetaDetails/VideosList/Video/Video.js
index 1c145dcfa..eda4ef8d6 100644
--- a/src/routes/MetaDetails/VideosList/Video/Video.js
+++ b/src/routes/MetaDetails/VideosList/Video/Video.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/VideoPlaceholder.js b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/VideoPlaceholder.js
index 15da2c020..66dfabf10 100644
--- a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/VideoPlaceholder.js
+++ b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/VideoPlaceholder.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/index.js b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/index.js
index e1b491643..74fe5b163 100644
--- a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/index.js
+++ b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const VideoPlaceholder = require('./VideoPlaceholder');
diff --git a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/styles.less b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/styles.less
index c98205336..abca6c669 100644
--- a/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/styles.less
+++ b/src/routes/MetaDetails/VideosList/Video/VideoPlaceholder/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
.video-placeholder-container {
display: flex;
diff --git a/src/routes/MetaDetails/VideosList/Video/index.js b/src/routes/MetaDetails/VideosList/Video/index.js
index 8fd7b815e..f6c5f0ae0 100644
--- a/src/routes/MetaDetails/VideosList/Video/index.js
+++ b/src/routes/MetaDetails/VideosList/Video/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const Video = require('./Video');
diff --git a/src/routes/MetaDetails/VideosList/Video/styles.less b/src/routes/MetaDetails/VideosList/Video/styles.less
index 2c8afc2bd..70b57d4d6 100644
--- a/src/routes/MetaDetails/VideosList/Video/styles.less
+++ b/src/routes/MetaDetails/VideosList/Video/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/MetaDetails/VideosList/VideosList.js b/src/routes/MetaDetails/VideosList/VideosList.js
index fdbc06c4c..478324d28 100644
--- a/src/routes/MetaDetails/VideosList/VideosList.js
+++ b/src/routes/MetaDetails/VideosList/VideosList.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/MetaDetails/VideosList/index.js b/src/routes/MetaDetails/VideosList/index.js
index cdf0fc773..4ae28b642 100644
--- a/src/routes/MetaDetails/VideosList/index.js
+++ b/src/routes/MetaDetails/VideosList/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const VideosList = require('./VideosList');
diff --git a/src/routes/MetaDetails/VideosList/styles.less b/src/routes/MetaDetails/VideosList/styles.less
index b94ceb4fe..c47c149b8 100644
--- a/src/routes/MetaDetails/VideosList/styles.less
+++ b/src/routes/MetaDetails/VideosList/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/routes/MetaDetails/index.js b/src/routes/MetaDetails/index.js
index 099b11312..d2be5007a 100644
--- a/src/routes/MetaDetails/index.js
+++ b/src/routes/MetaDetails/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const MetaDetails = require('./MetaDetails');
diff --git a/src/routes/MetaDetails/styles.less b/src/routes/MetaDetails/styles.less
index 400fd3f2f..c96293670 100644
--- a/src/routes/MetaDetails/styles.less
+++ b/src/routes/MetaDetails/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
@import (reference) '~stremio/common/screen-sizes.less';
diff --git a/src/routes/MetaDetails/useMetaDetails.js b/src/routes/MetaDetails/useMetaDetails.js
index 5742ca510..fb9f270c5 100644
--- a/src/routes/MetaDetails/useMetaDetails.js
+++ b/src/routes/MetaDetails/useMetaDetails.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { useModelState } = require('stremio/common');
diff --git a/src/routes/MetaDetails/useMetaExtensionTabs.js b/src/routes/MetaDetails/useMetaExtensionTabs.js
index 66d879956..44759580d 100644
--- a/src/routes/MetaDetails/useMetaExtensionTabs.js
+++ b/src/routes/MetaDetails/useMetaExtensionTabs.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/MetaDetails/useSeason.js b/src/routes/MetaDetails/useSeason.js
index c0f3f6cfb..6ae4df9f4 100644
--- a/src/routes/MetaDetails/useSeason.js
+++ b/src/routes/MetaDetails/useSeason.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
diff --git a/src/routes/NotFound/NotFound.js b/src/routes/NotFound/NotFound.js
index 0b4617286..d99ede63a 100644
--- a/src/routes/NotFound/NotFound.js
+++ b/src/routes/NotFound/NotFound.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const { Image, HorizontalNavBar } = require('stremio/common');
diff --git a/src/routes/NotFound/index.js b/src/routes/NotFound/index.js
index f15bbdc41..6035eb961 100644
--- a/src/routes/NotFound/index.js
+++ b/src/routes/NotFound/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const NotFound = require('./NotFound');
diff --git a/src/routes/NotFound/styles.less b/src/routes/NotFound/styles.less
index 21181edbf..633c5067b 100644
--- a/src/routes/NotFound/styles.less
+++ b/src/routes/NotFound/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
@import (reference) '~@stremio/stremio-colors/less/stremio-colors.less';
diff --git a/src/routes/Player/BufferingLoader/BufferingLoader.js b/src/routes/Player/BufferingLoader/BufferingLoader.js
index ecd08f2e6..c43604254 100644
--- a/src/routes/Player/BufferingLoader/BufferingLoader.js
+++ b/src/routes/Player/BufferingLoader/BufferingLoader.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
diff --git a/src/routes/Player/BufferingLoader/index.js b/src/routes/Player/BufferingLoader/index.js
index 306c9bbf8..59673b292 100644
--- a/src/routes/Player/BufferingLoader/index.js
+++ b/src/routes/Player/BufferingLoader/index.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const BufferingLoader = require('./BufferingLoader');
diff --git a/src/routes/Player/BufferingLoader/styles.less b/src/routes/Player/BufferingLoader/styles.less
index 5ef576a13..ce860570b 100644
--- a/src/routes/Player/BufferingLoader/styles.less
+++ b/src/routes/Player/BufferingLoader/styles.less
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
.buffering-loader-container {
display: flex;
diff --git a/src/routes/Player/ControlBar/ControlBar.js b/src/routes/Player/ControlBar/ControlBar.js
index 22ba2d174..469d04d1d 100644
--- a/src/routes/Player/ControlBar/ControlBar.js
+++ b/src/routes/Player/ControlBar/ControlBar.js
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2020 Smart code 203358507
+// Copyright (C) 2017-2022 Smart code 203358507
const React = require('react');
const PropTypes = require('prop-types');
@@ -19,7 +19,8 @@ const ControlBar = ({
volume,
muted,
subtitlesTracks,
- infoAvailable,
+ audioTracks,
+ metaItem,
onPlayRequested,
onPauseRequested,
onMuteRequested,
@@ -120,13 +121,13 @@ const ControlBar = ({
-