diff --git a/app/(auth)/(tabs)/(home)/_layout.tsx b/app/(auth)/(tabs)/(home)/_layout.tsx
index fc135fda..3509be51 100644
--- a/app/(auth)/(tabs)/(home)/_layout.tsx
+++ b/app/(auth)/(tabs)/(home)/_layout.tsx
@@ -1,4 +1,5 @@
import { Chromecast } from "@/components/Chromecast";
+import { Text } from "@/components/common/Text";
import { nestedTabPageScreenOptions } from "@/components/stacks/NestedTabPageStack";
import { Feather } from "@expo/vector-icons";
import { Stack, useRouter } from "expo-router";
@@ -15,6 +16,9 @@ export default function IndexLayout() {
headerLargeTitle: true,
headerTitle: "Home",
headerBlurEffect: "prominent",
+ headerLargeStyle: {
+ backgroundColor: "black",
+ },
headerTransparent: Platform.OS === "ios" ? true : false,
headerShadowVisible: false,
headerRight: () => (
diff --git a/app/(auth)/(tabs)/(home)/settings/popular-lists/page.tsx b/app/(auth)/(tabs)/(home)/settings/popular-lists/page.tsx
index bbb89400..285f6e7d 100644
--- a/app/(auth)/(tabs)/(home)/settings/popular-lists/page.tsx
+++ b/app/(auth)/(tabs)/(home)/settings/popular-lists/page.tsx
@@ -52,7 +52,7 @@ export default function page() {
return (
-
+
{
@@ -68,41 +68,6 @@ export default function page() {
/>
-
- {settings.usePopularPlugin && (
-
- {mediaListCollections?.map((mlc) => (
-
- {
- if (!settings.mediaListCollectionIds) {
- updateSettings({
- mediaListCollectionIds: [mlc.Id!],
- });
- return;
- }
-
- updateSettings({
- mediaListCollectionIds:
- settings.mediaListCollectionIds.includes(mlc.Id!)
- ? settings.mediaListCollectionIds.filter(
- (id) => id !== mlc.Id
- )
- : [...settings.mediaListCollectionIds, mlc.Id!],
- });
- }}
- />
-
- ))}
- {isLoadingMediaListCollections && }
- {mediaListCollections?.length === 0 && (
-
- No collections found. Add some in Jellyfin.
-
- )}
-
- )}
Popular Lists is a plugin that enables you to show custom Jellyfin lists
on the Streamyfin home page.{" "}
@@ -110,6 +75,65 @@ export default function page() {
Read more about Popular Lists.
+
+ {settings.usePopularPlugin && (
+ <>
+ {!isLoadingMediaListCollections ? (
+ <>
+ {mediaListCollections?.length === 0 ? (
+
+ No collections found. Add some in Jellyfin.
+
+ ) : (
+ <>
+
+ {mediaListCollections?.map((mlc) => (
+
+ {
+ if (!settings.mediaListCollectionIds) {
+ updateSettings({
+ mediaListCollectionIds: [mlc.Id!],
+ });
+ return;
+ }
+
+ updateSettings({
+ mediaListCollectionIds:
+ settings.mediaListCollectionIds.includes(
+ mlc.Id!
+ )
+ ? settings.mediaListCollectionIds.filter(
+ (id) => id !== mlc.Id
+ )
+ : [
+ ...settings.mediaListCollectionIds,
+ mlc.Id!,
+ ],
+ });
+ }}
+ />
+
+ ))}
+
+
+ Popular Lists is a plugin that enables you to show custom
+ Jellyfin lists on the Streamyfin home page.{" "}
+
+ Read more about Popular Lists.
+
+
+ >
+ )}
+ >
+ ) : (
+
+ )}
+ >
+ )}
);
}
diff --git a/app/(auth)/(tabs)/(search)/_layout.tsx b/app/(auth)/(tabs)/(search)/_layout.tsx
index 2917f1da..12cbad20 100644
--- a/app/(auth)/(tabs)/(search)/_layout.tsx
+++ b/app/(auth)/(tabs)/(search)/_layout.tsx
@@ -1,4 +1,7 @@
-import {commonScreenOptions, nestedTabPageScreenOptions} from "@/components/stacks/NestedTabPageStack";
+import {
+ commonScreenOptions,
+ nestedTabPageScreenOptions,
+} from "@/components/stacks/NestedTabPageStack";
import { Stack } from "expo-router";
import { Platform } from "react-native";
@@ -11,6 +14,9 @@ export default function SearchLayout() {
headerShown: true,
headerLargeTitle: true,
headerTitle: "Search",
+ headerLargeStyle: {
+ backgroundColor: "black",
+ },
headerBlurEffect: "prominent",
headerTransparent: Platform.OS === "ios" ? true : false,
headerShadowVisible: false,
@@ -29,10 +35,7 @@ export default function SearchLayout() {
headerShadowVisible: false,
}}
/>
-
+
);
}
diff --git a/bun.lockb b/bun.lockb
index 5712db3b..bf2b7971 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/components/home/LargeMovieCarousel.tsx b/components/home/LargeMovieCarousel.tsx
index df82b7bc..a22c586f 100644
--- a/components/home/LargeMovieCarousel.tsx
+++ b/components/home/LargeMovieCarousel.tsx
@@ -84,21 +84,27 @@ export const LargeMovieCarousel: React.FC = ({ ...props }) => {
const width = Dimensions.get("screen").width;
+ if (settings?.usePopularPlugin === false) return null;
if (l1 || l2) return null;
if (!popularItems) return null;
return (
-
+
}
+ renderItem={({ item, index }) => }
/>
> = ({
const childrenArray = Children.toArray(children);
return (
-
+
{title}
{Children.map(childrenArray, (child, index) => {
if (isValidElement<{ style?: ViewStyle }>(child)) {