diff --git a/src/components/ProfileIcon.tsx b/src/components/ProfileIcon.tsx new file mode 100644 index 0000000..db5aaec --- /dev/null +++ b/src/components/ProfileIcon.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { View } from 'react-native'; +import Svg, { Path } from 'react-native-svg'; + +interface ProfileIconProps { + size?: number; + color?: string; +} + +const ProfileIcon: React.FC = ({ size = 24, color = '#FFFFFF' }) => { + return ( + + + + + + + + ); +}; + +export default ProfileIcon; diff --git a/src/components/icons/TraktIcon.tsx b/src/components/icons/TraktIcon.tsx new file mode 100644 index 0000000..65e85c7 --- /dev/null +++ b/src/components/icons/TraktIcon.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { View } from 'react-native'; +import Svg, { Path } from 'react-native-svg'; + +interface TraktIconProps { + size?: number; + color?: string; +} + +const TraktIcon: React.FC = ({ size = 24, color = '#ed2224' }) => { + return ( + + + + + + + + + ); +}; + +export default TraktIcon; diff --git a/src/components/metadata/SeriesContent.tsx b/src/components/metadata/SeriesContent.tsx index c36a7b1..2f5fb37 100644 --- a/src/components/metadata/SeriesContent.tsx +++ b/src/components/metadata/SeriesContent.tsx @@ -62,24 +62,22 @@ export const SeriesContent: React.FC = ({ const episodeScrollViewRef = useRef>(null); const horizontalEpisodeScrollViewRef = useRef>(null); - // Load saved view mode preference when component mounts or show changes + // Load saved global view mode preference when component mounts useEffect(() => { const loadViewModePreference = async () => { - if (metadata?.id) { - try { - const savedMode = await AsyncStorage.getItem(`season_view_mode_${metadata.id}`); - if (savedMode === 'text' || savedMode === 'posters') { - setSeasonViewMode(savedMode); - if (__DEV__) console.log('[SeriesContent] Loaded saved view mode:', savedMode, 'for show:', metadata.id); - } - } catch (error) { - if (__DEV__) console.log('[SeriesContent] Error loading view mode preference:', error); + try { + const savedMode = await AsyncStorage.getItem('global_season_view_mode'); + if (savedMode === 'text' || savedMode === 'posters') { + setSeasonViewMode(savedMode); + if (__DEV__) console.log('[SeriesContent] Loaded global view mode:', savedMode); } + } catch (error) { + if (__DEV__) console.log('[SeriesContent] Error loading global view mode preference:', error); } }; loadViewModePreference(); - }, [metadata?.id]); + }, []); // Initialize view mode visibility based on current view mode useEffect(() => { @@ -97,11 +95,9 @@ export const SeriesContent: React.FC = ({ // Update view mode without animations const updateViewMode = (newMode: 'posters' | 'text') => { setSeasonViewMode(newMode); - if (metadata?.id) { - AsyncStorage.setItem(`season_view_mode_${metadata.id}`, newMode).catch(error => { - if (__DEV__) console.log('[SeriesContent] Error saving view mode preference:', error); - }); - } + AsyncStorage.setItem('global_season_view_mode', newMode).catch(error => { + if (__DEV__) console.log('[SeriesContent] Error saving global view mode preference:', error); + }); }; // Add refs for the scroll views diff --git a/src/screens/SettingsScreen.tsx b/src/screens/SettingsScreen.tsx index 8cf773e..a5455bb 100644 --- a/src/screens/SettingsScreen.tsx +++ b/src/screens/SettingsScreen.tsx @@ -33,6 +33,7 @@ import * as Sentry from '@sentry/react-native'; import CustomAlert from '../components/CustomAlert'; import ProfileIcon from '../components/icons/ProfileIcon'; import PluginIcon from '../components/icons/PluginIcon'; +import TraktIcon from '../components/icons/TraktIcon'; const { width, height } = Dimensions.get('window'); const isTablet = width >= 768; @@ -462,7 +463,7 @@ const SettingsScreen: React.FC = () => { } renderControl={ChevronRight} onPress={() => navigation.navigate('TraktSettings')} isLast={true}