better approach for imdb logo using remote svg lib

This commit is contained in:
chrisk325 2026-01-28 21:57:59 +05:30 committed by GitHub
parent fc2ff910e6
commit 6f0db7303b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,4 +1,5 @@
import React, { useEffect, useState, useRef, useCallback, useMemo } from 'react';
import { SvgUri } from 'react-native-svg';
import { View, Text, StyleSheet, ActivityIndicator, Image, Animated, Dimensions } from 'react-native';
import { MaterialIcons as MaterialIconsWrapper } from '@expo/vector-icons';
import { useTheme } from '../../contexts/ThemeContext';
@ -162,8 +163,8 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
const ratingConfig = {
imdb: {
name: 'IMDb',
icon: { uri: IMDb_LOGO },
isImage: false,
icon: IMDb_LOGO,
isRemoteSvg: true,
color: '#F5C518',
transform: (value: number) => value.toFixed(1)
},
@ -244,10 +245,23 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
return (
<View key={source} style={[styles.compactRatingItem, { marginRight: itemSpacing }]}>
{config.isImage ? (
{config.isRemoteSvg ? (
<SvgUri
uri={config.icon as string}
width={source === 'imdb' ? iconSize * 2 : iconSize}
height={iconSize}
/>
) : config.isImage ? (
<Image
source={config.icon as any}
style={[styles.compactRatingIcon, { width: source === 'imdb' ? iconSize * 2 : iconSize, height: iconSize, marginRight: iconTextGap }]}
style={[
styles.compactRatingIcon,
{
width: source === 'imdb' ? iconSize * 2 : iconSize,
height: iconSize,
marginRight: iconTextGap,
},
]}
resizeMode="contain"
/>
) : config.icon ? (
@ -258,13 +272,14 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
})}
</View>
) : (
// Text fallback
<Text style={{
color: config.color,
fontSize: textSize,
fontWeight: '900',
marginRight: iconTextGap
}}>
<Text
style={{
color: config.color,
fontSize: textSize,
fontWeight: '900',
marginRight: iconTextGap,
}}
>
{config.name}
</Text>
)}