update herosection play icon

This commit is contained in:
tapframe 2026-03-17 06:20:51 +05:30
parent 741550d72d
commit 556b0f4724
4 changed files with 39 additions and 25 deletions

View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.4086 9.35258C23.5305 10.5065 23.5305 13.4935 21.4086 14.6474L8.59662 21.6145C6.53435 22.736 4 21.2763 4 18.9671L4 5.0329C4 2.72368 6.53435 1.26402 8.59661 2.38548L21.4086 9.35258Z" fill="#000000"/>
</svg>

After

Width:  |  Height:  |  Size: 359 B

View file

@ -18,6 +18,7 @@ import { RootStackParamList } from '../../navigation/AppNavigator';
import { LinearGradient } from 'expo-linear-gradient'; import { LinearGradient } from 'expo-linear-gradient';
import FastImage from '@d11/react-native-fast-image'; import FastImage from '@d11/react-native-fast-image';
import { MaterialIcons, Entypo } from '@expo/vector-icons'; import { MaterialIcons, Entypo } from '@expo/vector-icons';
import PlayerPlayIconBlack from '../../../assets/player-icons/ic_player_play_black.svg';
import Animated, { import Animated, {
FadeIn, FadeIn,
FadeOut, FadeOut,
@ -1316,11 +1317,19 @@ const AppleTVHero: React.FC<AppleTVHeroProps> = ({
onPress={handlePlayAction} onPress={handlePlayAction}
activeOpacity={0.85} activeOpacity={0.85}
> >
<MaterialIcons {shouldResume ? (
name={shouldResume ? "replay" : "play-arrow"} <MaterialIcons
size={24} name="replay"
color="#000" size={24}
/> color="#000"
/>
) : (
<PlayerPlayIconBlack
width={24}
height={24}
style={{ transform: [{ scale: 0.85 }] }}
/>
)}
<Text style={styles.playButtonText}>{shouldResume ? t('home.resume') : t('home.play')}</Text> <Text style={styles.playButtonText}>{shouldResume ? t('home.resume') : t('home.play')}</Text>
</TouchableOpacity> </TouchableOpacity>

View file

@ -57,6 +57,7 @@ import { TMDBService } from '../../services/tmdbService';
import TrailerService, { TrailerPlaybackSource } from '../../services/trailerService'; import TrailerService, { TrailerPlaybackSource } from '../../services/trailerService';
import TrailerPlayer from '../video/TrailerPlayer'; import TrailerPlayer from '../video/TrailerPlayer';
import { HERO_HEIGHT, SCREEN_WIDTH as width, IS_TABLET as isTablet } from '../../constants/dimensions'; import { HERO_HEIGHT, SCREEN_WIDTH as width, IS_TABLET as isTablet } from '../../constants/dimensions';
import PlayerPlayIconBlack from '../../../assets/player-icons/ic_player_play_black.svg';
const { height } = Dimensions.get('window'); const { height } = Dimensions.get('window');
@ -355,16 +356,19 @@ const ActionButtons = memo(({
onPress={handleShowStreams} onPress={handleShowStreams}
activeOpacity={0.85} activeOpacity={0.85}
> >
<MaterialIcons {isWatched && type === 'movie' ? (
name={(() => { <MaterialIcons
if (isWatched) { name="replay"
return type === 'movie' ? 'replay' : 'play-arrow'; size={isTablet ? 28 : 24}
} color="#fff"
return playButtonText === 'Resume' ? 'play-circle-outline' : 'play-arrow'; />
})()} ) : (
size={isTablet ? 28 : 24} <PlayerPlayIconBlack
color={isWatched && type === 'movie' ? "#fff" : "#000"} width={isTablet ? 28 : 24}
/> height={isTablet ? 28 : 24}
style={{ transform: [{ scale: isTablet ? 0.85 : 0.79 }] }}
/>
)}
<Text style={[playButtonTextStyle, isTablet && styles.tabletPlayButtonText]}>{finalPlayButtonText}</Text> <Text style={[playButtonTextStyle, isTablet && styles.tabletPlayButtonText]}>{finalPlayButtonText}</Text>
</TouchableOpacity> </TouchableOpacity>

View file

@ -1782,11 +1782,8 @@ const LibraryScreen = () => {
setFilter(filterType); setFilter(filterType);
}} }}
activeOpacity={0.7} activeOpacity={0.7}
> >
{iconName && ( <Text
<MaterialIcons name={iconName} size={20} color={isActive ? currentTheme.colors.white : currentTheme.colors.mediumGray} style={styles.filterIcon} />
)}
<Text
style={[ style={[
styles.filterText, styles.filterText,
{ color: currentTheme.colors.mediumGray }, { color: currentTheme.colors.mediumGray },
@ -1901,11 +1898,11 @@ const LibraryScreen = () => {
style={styles.filtersContainer} style={styles.filtersContainer}
contentContainerStyle={styles.filtersContent} contentContainerStyle={styles.filtersContent}
> >
{renderFilter('trakt', 'Trakt', 'pan-tool')} {renderFilter('trakt', 'Trakt')}
{renderFilter('simkl', 'SIMKL', 'video-library')} {renderFilter('simkl', 'SIMKL')}
{renderFilter('mal', 'MAL', 'book')} {renderFilter('mal', 'MAL')}
{renderFilter('movies', t('search.movies'), 'movie')} {renderFilter('movies', t('search.movies'))}
{renderFilter('series', t('search.tv_shows'), 'live-tv')} {renderFilter('series', t('search.tv_shows'))}
</ScrollView> </ScrollView>
)} )}