UNPKG

@zezosoft/zezo-ott-react-native-video-player

Version:

React Native OTT Video Player for Android & iOS. Supports playlists, seasons, auto-next playback, subtitles, theming, analytics, fullscreen mode, and custom controls. 🚀 Powered by ZezoSoft.

48 lines (41 loc) • 1.46 kB
/** * @author Naresh Dhamu * @lastModified Sat 16 Aug 2025 at 10:32 PM * @description: Utility functions for formatting time */ export const formatDuration = ( totalSeconds: number, hideSeconds = false, addSpaces = false ): string => { const hours = Math.floor(totalSeconds / 3600); const minutes = Math.floor((totalSeconds % 3600) / 60); const seconds = totalSeconds % 60; const formatUnit = (value: number, label: string) => value ? `${value}${addSpaces ? ` ${label} ` : label}` : ''; const result = formatUnit(hours, 'h') + formatUnit(minutes, 'm') + formatUnit(seconds, 's'); return hideSeconds ? formatUnit(hours, 'h') + formatUnit(minutes, 'm') : result; }; export const formatTime = (seconds: number) => { const h = Math.floor(seconds / 3600); const m = Math.floor((seconds % 3600) / 60); const s = Math.floor(seconds % 60); if (h > 0) { return `${h}:${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`; } return `${m}:${String(s).padStart(2, '0')}`; }; export const formatTimeWithMs = (seconds: number): string => { if (isNaN(seconds) || seconds < 0) return '00:00.000'; const totalMs = Math.floor(seconds * 1000); const ms = totalMs % 1000; const totalSec = Math.floor(totalMs / 1000); const min = Math.floor(totalSec / 60); const sec = totalSec % 60; return `${String(min).padStart(2, '0')}:${String(sec).padStart(2, '0')}.${String(ms).padStart(3, '0')}`; };