+
+ {description}
+
{
streamLink &&
}
diff --git a/src/routes/MetaDetails/StreamsList/Stream/styles.less b/src/routes/MetaDetails/StreamsList/Stream/styles.less
index 0461c77ee..06720a879 100644
--- a/src/routes/MetaDetails/StreamsList/Stream/styles.less
+++ b/src/routes/MetaDetails/StreamsList/Stream/styles.less
@@ -111,12 +111,29 @@
background-color: var(--secondary-accent-color);
}
+ .menu-icon {
+ flex: none;
+ width: 1.7rem;
+ height: 1.7rem;
+ margin-right: 1rem;
+ color: var(--color-placeholder);
+ }
+
.context-menu-container {
max-width: calc(90% - 1.5rem);
z-index: 2;
.context-menu-content {
--spatial-navigation-contain: contain;
+
+ .context-menu-title {
+ font-size: 0.9rem;
+ padding: 1rem 1.5rem;
+ font-weight: 100;
+ border-bottom: 1px solid var(--color-placeholder);
+ color: var(--primary-foreground-color);
+ white-space: break-spaces;
+ }
.context-menu-option-container {
display: flex;
@@ -131,8 +148,9 @@
.context-menu-option-label {
font-size: 1rem;
- font-weight: 500;
- color:var(--primary-foreground-color);
+ font-weight: 300;
+ color: var(--primary-foreground-color);
+ text-transform: capitalize;
}
}
}
diff --git a/src/routes/MetaDetails/StreamsList/StreamsList.js b/src/routes/MetaDetails/StreamsList/StreamsList.js
index e1d18bab6..bcb5cb015 100644
--- a/src/routes/MetaDetails/StreamsList/StreamsList.js
+++ b/src/routes/MetaDetails/StreamsList/StreamsList.js
@@ -9,7 +9,7 @@ const { Button, Image, Multiselect } = require('stremio/components');
const { useServices } = require('stremio/services');
const Stream = require('./Stream');
const styles = require('./styles');
-const { usePlatform } = require('stremio/common');
+const { usePlatform, useProfile } = require('stremio/common');
const ALL_ADDONS_KEY = 'ALL';
@@ -17,17 +17,21 @@ const StreamsList = ({ className, video, ...props }) => {
const { t } = useTranslation();
const { core } = useServices();
const platform = usePlatform();
+ const profile = useProfile();
const streamsContainerRef = React.useRef(null);
const [selectedAddon, setSelectedAddon] = React.useState(ALL_ADDONS_KEY);
const onAddonSelected = React.useCallback((event) => {
streamsContainerRef.current.scrollTo({ top: 0, left: 0, behavior: platform.name === 'ios' ? 'smooth' : 'instant' });
setSelectedAddon(event.value);
}, [platform]);
+ const showInstallAddonsButton = React.useMemo(() => {
+ return !profile || profile.auth === null || profile.auth?.user?.isNewUser === true;
+ }, [profile]);
const backButtonOnClick = React.useCallback(() => {
if (video.deepLinks && typeof video.deepLinks.metaDetailsVideos === 'string') {
window.location.replace(video.deepLinks.metaDetailsVideos + (
typeof video.season === 'number' ?
- `?${new URLSearchParams({'season': video.season})}`
+ `?${new URLSearchParams({ 'season': video.season })}`
:
null
));
@@ -126,6 +130,15 @@ const StreamsList = ({ className, video, ...props }) => {
{t('NO_STREAM')}
+ {
+ showInstallAddonsButton ?
+
+ :
+ null
+ }
:
filteredStreams.length === 0 ?
@@ -161,13 +174,18 @@ const StreamsList = ({ className, video, ...props }) => {
onClick={stream.onClick}
/>
))}
+ {
+ showInstallAddonsButton ?
+
+ :
+ null
+ }
}
-
- { nextVideo.overview }
-
- :
- null
- }