Merge pull request #445 from chrisk325/patch-12

better approach for imdb logo using remote svg lib
This commit is contained in:
Nayif 2026-01-29 01:15:25 +05:30 committed by GitHub
commit 5fa793e1f5
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 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 { View, Text, StyleSheet, ActivityIndicator, Image, Animated, Dimensions } from 'react-native';
import { MaterialIcons as MaterialIconsWrapper } from '@expo/vector-icons'; import { MaterialIcons as MaterialIconsWrapper } from '@expo/vector-icons';
import { useTheme } from '../../contexts/ThemeContext'; import { useTheme } from '../../contexts/ThemeContext';
@ -162,8 +163,8 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
const ratingConfig = { const ratingConfig = {
imdb: { imdb: {
name: 'IMDb', name: 'IMDb',
icon: { uri: IMDb_LOGO }, icon: IMDb_LOGO,
isImage: false, isRemoteSvg: true,
color: '#F5C518', color: '#F5C518',
transform: (value: number) => value.toFixed(1) transform: (value: number) => value.toFixed(1)
}, },
@ -244,10 +245,24 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
return ( return (
<View key={source} style={[styles.compactRatingItem, { marginRight: itemSpacing }]}> <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}
style={{ marginRight: iconTextGap }}
/>
) : config.isImage ? (
<Image <Image
source={config.icon as any} 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" resizeMode="contain"
/> />
) : config.icon ? ( ) : config.icon ? (
@ -258,13 +273,14 @@ export const RatingsSection: React.FC<RatingsSectionProps> = ({ imdbId, type })
})} })}
</View> </View>
) : ( ) : (
// Text fallback <Text
<Text style={{ style={{
color: config.color, color: config.color,
fontSize: textSize, fontSize: textSize,
fontWeight: '900', fontWeight: '900',
marginRight: iconTextGap marginRight: iconTextGap,
}}> }}
>
{config.name} {config.name}
</Text> </Text>
)} )}