diff --git a/src/components/metadata/MetadataDetails.tsx b/src/components/metadata/MetadataDetails.tsx index a51e53cd..57b25d35 100644 --- a/src/components/metadata/MetadataDetails.tsx +++ b/src/components/metadata/MetadataDetails.tsx @@ -23,6 +23,8 @@ import { isMDBListEnabled } from '../../screens/MDBListSettingsScreen'; import { getAgeRatingColor } from '../../utils/ageRatingColors'; import AgeRatingBadge from '../common/AgeRatingBadge'; +const IMDb_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/IMDB_Logo_2016.svg/575px-IMDB_Logo_2016.svg.png'; + // Enhanced responsive breakpoints for Metadata Details const BREAKPOINTS = { phone: 0, @@ -233,6 +235,17 @@ const MetadataDetails: React.FC = ({ )} {metadata.imdbRating && !isMDBEnabled && ( + = ({ imdbId, type }) const ratingConfig = { imdb: { name: 'IMDb', - icon: null, // No icon for IMDb - isImage: false, + icon: { uri: IMDb_LOGO }, + isImage: true, color: '#F5C518', transform: (value: number) => value.toFixed(1) }, @@ -245,7 +247,7 @@ export const RatingsSection: React.FC = ({ imdbId, type }) {config.isImage ? ( ) : config.icon ? ( diff --git a/src/components/metadata/SeriesContent.tsx b/src/components/metadata/SeriesContent.tsx index 639a63b6..4d2035f8 100644 --- a/src/components/metadata/SeriesContent.tsx +++ b/src/components/metadata/SeriesContent.tsx @@ -41,6 +41,7 @@ interface SeriesContentProps { const DEFAULT_PLACEHOLDER = 'https://via.placeholder.com/300x450/1a1a1a/666666?text=No+Image'; const EPISODE_PLACEHOLDER = 'https://via.placeholder.com/500x280/1a1a1a/666666?text=No+Preview'; const TMDB_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/89/Tmdb.new.logo.svg/512px-Tmdb.new.logo.svg.png?20200406190906'; +const IMDb_LOGO = 'https://upload.wikimedia.org/wikipedia/commons/thumb/6/69/IMDB_Logo_2016.svg/575px-IMDB_Logo_2016.svg.png'; const SeriesContentComponent: React.FC = ({ episodes, @@ -1166,7 +1167,18 @@ const SeriesContentComponent: React.FC = ({ {isImdbRating ? ( <> - + = ({ {isImdbRating ? ( <> - + { controls.seekToTime(value); }; + const handleProgress = useCallback((d: any) => { + if (!isSliderDragging) { + setCurrentTime(d.currentTime); + } + // Only update buffered if it changed by more than 0.5s to reduce re-renders + const newBuffered = d.buffered || 0; + setBuffered(prevBuffered => { + if (Math.abs(newBuffered - prevBuffered) > 0.5) { + return newBuffered; + } + return prevBuffered; + }); + }, [isSliderDragging, setCurrentTime, setBuffered]); + return (