diff --git a/src/components/home/CatalogSection.tsx b/src/components/home/CatalogSection.tsx index 7639a9f..e3d6f34 100644 --- a/src/components/home/CatalogSection.tsx +++ b/src/components/home/CatalogSection.tsx @@ -77,7 +77,7 @@ const CatalogSection = ({ catalog }: CatalogSectionProps) => { const keyExtractor = useCallback((item: StreamingContent) => `${item.id}-${item.type}`, []); return ( - + {catalog.name} diff --git a/src/components/home/ContentItem.tsx b/src/components/home/ContentItem.tsx index 3a23b17..2e93eea 100644 --- a/src/components/home/ContentItem.tsx +++ b/src/components/home/ContentItem.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect, useCallback, useRef } from 'react'; import { Toast } from 'toastify-react-native'; import { DeviceEventEmitter } from 'react-native'; -import { View, TouchableOpacity, ActivityIndicator, StyleSheet, Dimensions, Platform, Text, Animated, Share } from 'react-native'; +import { View, TouchableOpacity, ActivityIndicator, StyleSheet, Dimensions, Platform, Text, Share } from 'react-native'; import FastImage from '@d11/react-native-fast-image'; import { MaterialIcons, Feather } from '@expo/vector-icons'; import { useTheme } from '../../contexts/ThemeContext'; @@ -11,6 +11,7 @@ import { DropUpMenu } from './DropUpMenu'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { storageService } from '../../services/storageService'; import { TraktService } from '../../services/traktService'; +import Animated, { FadeIn } from 'react-native-reanimated'; interface ContentItemProps { item: StreamingContent; @@ -96,7 +97,6 @@ const ContentItem = ({ item, onPress, shouldLoadImage: shouldLoadImageProp, defe const { currentTheme } = useTheme(); const { settings, isLoaded } = useSettings(); const posterRadius = typeof settings.posterBorderRadius === 'number' ? settings.posterBorderRadius : 12; - const fadeInOpacity = React.useRef(new Animated.Value(1)).current; // Memoize poster width calculation to avoid recalculating on every render const posterWidth = React.useMemo(() => { switch (settings.posterSize) { @@ -232,7 +232,7 @@ const ContentItem = ({ item, onPress, shouldLoadImage: shouldLoadImageProp, defe return ( <> - + = memo(({ item, colors, logoFail {/* Static genres positioned absolutely over the card */} {item.genres && ( - - {item.genres.slice(0, 3).join(' • ')} - + + + {item.genres.slice(0, 3).join(' • ')} + + )} {/* Static action buttons positioned absolutely over the card */} - + + = memo(({ item, colors, logoFail Info + {/* Static logo positioned absolutely over the card */}