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)) {