UNPKG

react-native-video-player

Version:
47 lines (46 loc) 1.69 kB
"use strict"; import { forwardRef, memo, useImperativeHandle, useState } from 'react'; import { StyleSheet, Text } from 'react-native'; import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime"; const getDurationTime = duration => { const padTimeValueString = value => value.toString().padStart(2, '0'); if (!Number.isFinite(duration)) return ''; const seconds = Math.floor(duration % 60); const minutes = Math.floor(duration / 60 % 60); const hours = Math.floor(duration / 3600 % 24); return hours ? `${padTimeValueString(hours)}:${padTimeValueString(minutes)}:${padTimeValueString(seconds)}` : `${padTimeValueString(minutes)}:${padTimeValueString(seconds)}`; }; const ProgressingDuration = /*#__PURE__*/forwardRef(({ duration, durationTextCustomStyles }, ref) => { const [progress, setProgress] = useState(0); useImperativeHandle(ref, () => ({ onProgress: setProgress })); return /*#__PURE__*/_jsx(Text, { style: [styles.durationText, durationTextCustomStyles], children: getDurationTime(progress * duration) }); }); export const DurationText = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(({ duration, durationTextCustomStyles }, ref) => { return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsx(ProgressingDuration, { ref: ref, duration: duration, durationTextCustomStyles: durationTextCustomStyles }), /*#__PURE__*/_jsx(Text, { style: [styles.durationText, durationTextCustomStyles], children: ` / ${getDurationTime(duration)}` })] }); })); const styles = StyleSheet.create({ durationText: { color: 'white' } }); //# sourceMappingURL=Duration.js.map