diff --git a/src/components/metadata/MetadataDetails.tsx b/src/components/metadata/MetadataDetails.tsx index 307a069..2532b76 100644 --- a/src/components/metadata/MetadataDetails.tsx +++ b/src/components/metadata/MetadataDetails.tsx @@ -98,11 +98,34 @@ const MetadataDetails: React.FC = ({ })); function formatRuntime(runtime: string): string { + // Try to match formats like "1h55min", "2h 7min", "125 min", etc. + const match = runtime.match(/(?:(\d+)\s*h\s*)?(\d+)\s*min/i); + if (match) { + const h = match[1] ? parseInt(match[1], 10) : 0; + const m = match[2] ? parseInt(match[2], 10) : 0; + if (h > 0) { + return `${h}H ${m}M`; + } + if (m < 60) { + return `${m} MIN`; + } + const hours = Math.floor(m / 60); + const mins = m % 60; + return hours > 0 ? `${hours}H ${mins}M` : `${mins} MIN`; + } + + // Fallback: treat as minutes if it's a number const r = parseInt(runtime, 10); - if (isNaN(r) || r < 60) return runtime; - const h = Math.floor(r / 60); - const m = r % 60; - return `${h}H ${m}MIN`; + if (!isNaN(r)) { + if (r < 60) return `${r} MIN`; + const h = Math.floor(r / 60); + const m = r % 60; + return h > 0 ? `${h}H ${m}M` : `${m} MIN`; + } + + // If not matched, return as is + return runtime; + } return ( @@ -239,7 +262,7 @@ const styles = StyleSheet.create({ metaInfo: { flexDirection: 'row', alignItems: 'center', - gap: 12, + gap: 18, paddingHorizontal: 16, marginBottom: 12, },