From c4f5c9e374e90d4226a44c4a0c44680c90cd771a Mon Sep 17 00:00:00 2001 From: tapframe Date: Fri, 4 Jul 2025 16:25:53 +0530 Subject: [PATCH] Update app.json icon, remove unused image, and refactor CatalogSection and StreamsScreen components for improved layout and performance This commit updates the app.json to change the icon path, deletes an unused image file, and refactors the CatalogSection and StreamsScreen components. The CatalogSection now includes a title with a maximum line limit, while the StreamsScreen optimizes stream information handling and adjusts rendering parameters for better performance. --- app.json | 2 +- ... Image 2025-04-17 at 03.45.56_f37ab22f.jpg | Bin 49075 -> 0 bytes src/components/home/CatalogSection.tsx | 5 +- src/navigation/AppNavigator.tsx | 127 ++++-------------- src/screens/StreamsScreen.tsx | 44 +++--- 5 files changed, 59 insertions(+), 119 deletions(-) delete mode 100644 assets/WhatsApp Image 2025-04-17 at 03.45.56_f37ab22f.jpg diff --git a/app.json b/app.json index e592d6a..63d621b 100644 --- a/app.json +++ b/app.json @@ -4,7 +4,7 @@ "slug": "nuvio", "version": "1.0.0", "orientation": "default", - "icon": "./assets/icon.png", + "icon": "./assets/splash-icon.png", "userInterfaceStyle": "dark", "scheme": "stremioexpo", "newArchEnabled": true, diff --git a/assets/WhatsApp Image 2025-04-17 at 03.45.56_f37ab22f.jpg b/assets/WhatsApp Image 2025-04-17 at 03.45.56_f37ab22f.jpg deleted file mode 100644 index 4ffb7f56e7f8edc6621a60a8e92b3cf9699549a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49075 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

Mvg00ie^)C6$pufT=?%4FuoDg<4;F>IYT! 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 J1c1Mm{t4_bl%N0r diff --git a/src/components/home/CatalogSection.tsx b/src/components/home/CatalogSection.tsx index 9365880..b7edc37 100644 --- a/src/components/home/CatalogSection.tsx +++ b/src/components/home/CatalogSection.tsx @@ -80,7 +80,7 @@ const CatalogSection = ({ catalog }: CatalogSectionProps) => { > - {catalog.name} + {catalog.name} }> = ({ Screen }) // Tab Navigator const MainTabs = () => { - // Always use dark mode - const isDarkMode = true; const { currentTheme } = useTheme(); const renderTabBar = (props: BottomTabBarProps) => { @@ -536,124 +534,57 @@ const MainTabs = () => { ({ - tabBarIcon: ({ focused, color, size }) => { - let iconName: IconNameType = 'home'; - - switch (route.name) { - case 'Home': - iconName = 'home'; - break; - case 'Library': - iconName = 'play-box-multiple'; - break; - case 'Search': - iconName = 'feature-search'; - break; - case 'Settings': - iconName = 'cog'; - break; - } - - return ; - }, - tabBarActiveTintColor: currentTheme.colors.primary, - tabBarInactiveTintColor: currentTheme.colors.white, + screenOptions={({ route, navigation, theme }) => ({ + header: () => (route.name === 'Home' ? : null), + headerShown: route.name === 'Home', + tabBarShowLabel: false, tabBarStyle: { position: 'absolute', - backgroundColor: 'transparent', borderTopWidth: 0, elevation: 0, - height: 85, - paddingBottom: 20, - paddingTop: 12, - }, - tabBarLabelStyle: { - fontSize: 12, - fontWeight: '600', - marginTop: 0, - }, - // Completely disable animations between tabs for better performance - animationEnabled: false, - // Keep all screens mounted and active - lazy: false, - freezeOnBlur: false, - detachPreviousScreen: false, - // Configure how the screen renders - detachInactiveScreens: false, - tabBarBackground: () => ( - Platform.OS === 'ios' ? ( - - ) : ( - - ) - ), - header: () => route.name === 'Home' ? : null, - headerShown: route.name === 'Home', - // Add fixed screen styling to help with consistency - contentStyle: { backgroundColor: currentTheme.colors.darkBackground, }, + detachInactiveScreens: false, })} - // Global configuration for the tab navigator - detachInactiveScreens={false} > - ( + + ), }} /> - ( + + ), }} /> - ( + + ), }} /> - ( + + ), }} /> diff --git a/src/screens/StreamsScreen.tsx b/src/screens/StreamsScreen.tsx index aff29b1..c2f723b 100644 --- a/src/screens/StreamsScreen.tsx +++ b/src/screens/StreamsScreen.tsx @@ -56,7 +56,7 @@ const DOLBY_ICON = 'https://upload.wikimedia.org/wikipedia/en/thumb/3/3f/Dolby_V const { width, height } = Dimensions.get('window'); // Extracted Components -const StreamCard = ({ stream, onPress, index, isLoading, statusMessage, theme }: { +const StreamCard = memo(({ stream, onPress, index, isLoading, statusMessage, theme }: { stream: Stream; onPress: () => void; index: number; @@ -66,11 +66,19 @@ const StreamCard = ({ stream, onPress, index, isLoading, statusMessage, theme }: }) => { const styles = React.useMemo(() => createStyles(theme.colors), [theme.colors]); - const quality = stream.title?.match(/(\d+)p/)?.[1] || null; - const isHDR = stream.title?.toLowerCase().includes('hdr'); - const isDolby = stream.title?.toLowerCase().includes('dolby') || stream.title?.includes('DV'); - const size = stream.title?.match(/💾\s*([\d.]+\s*[GM]B)/)?.[1]; - const isDebrid = stream.behaviorHints?.cached; + const streamInfo = useMemo(() => { + const title = stream.title || ''; + const name = stream.name || ''; + return { + quality: title.match(/(\d+)p/)?.[1] || null, + isHDR: title.toLowerCase().includes('hdr'), + isDolby: title.toLowerCase().includes('dolby') || title.includes('DV'), + size: title.match(/💾\s*([\d.]+\s*[GM]B)/)?.[1], + isDebrid: stream.behaviorHints?.cached, + displayName: name || title || 'Unnamed Stream', + subTitle: title && title !== name ? title : null + }; + }, [stream.name, stream.title, stream.behaviorHints]); // Animation delay based on index - stagger effect const enterDelay = 100 + (index * 30); @@ -93,11 +101,11 @@ const StreamCard = ({ stream, onPress, index, isLoading, statusMessage, theme }: - {stream.name || stream.title || 'Unnamed Stream'} + {streamInfo.displayName} - {stream.title && stream.title !== stream.name && ( + {streamInfo.subTitle && ( - {stream.title} + {streamInfo.subTitle} )} @@ -114,21 +122,21 @@ const StreamCard = ({ stream, onPress, index, isLoading, statusMessage, theme }: - {quality && quality >= "720" && ( + {streamInfo.quality && streamInfo.quality >= "720" && ( )} - {isDolby && ( + {streamInfo.isDolby && ( )} - {size && ( + {streamInfo.size && ( - {size} + {streamInfo.size} )} - {isDebrid && ( + {streamInfo.isDebrid && ( DEBRID @@ -146,7 +154,7 @@ const StreamCard = ({ stream, onPress, index, isLoading, statusMessage, theme }: ); -}; +}); const QualityTag = React.memo(({ text, color, theme }: { text: string; color: string; theme: any }) => { const styles = React.useMemo(() => createStyles(theme.colors), [theme.colors]); @@ -1173,9 +1181,9 @@ export const StreamsScreen = () => { renderItem={renderItem} renderSectionHeader={renderSectionHeader} stickySectionHeadersEnabled={false} - initialNumToRender={8} - maxToRenderPerBatch={4} - windowSize={5} + initialNumToRender={6} + maxToRenderPerBatch={3} + windowSize={4} removeClippedSubviews={false} contentContainerStyle={styles.streamsContainer} style={styles.streamsContent}