mirror of
https://github.com/tapframe/NuvioStreaming.git
synced 2026-04-21 00:32:04 +00:00
Merge pull request #445 from chrisk325/patch-12
better approach for imdb logo using remote svg lib
This commit is contained in:
commit
5fa793e1f5
1 changed files with 27 additions and 11 deletions
|
|
@ -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>
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue