react-native-video-player
Version:
A <VideoPlayer /> component for React Native with controls
51 lines (50 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DurationText = void 0;
var _react = require("react");
var _reactNative = require("react-native");
var _jsxRuntime = require("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__*/(0, _react.forwardRef)(({
duration,
durationTextCustomStyles
}, ref) => {
const [progress, setProgress] = (0, _react.useState)(0);
(0, _react.useImperativeHandle)(ref, () => ({
onProgress: setProgress
}));
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
style: [styles.durationText, durationTextCustomStyles],
children: getDurationTime(progress * duration)
});
});
const DurationText = exports.DurationText = /*#__PURE__*/(0, _react.memo)(/*#__PURE__*/(0, _react.forwardRef)(({
duration,
durationTextCustomStyles
}, ref) => {
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ProgressingDuration, {
ref: ref,
duration: duration,
durationTextCustomStyles: durationTextCustomStyles
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
style: [styles.durationText, durationTextCustomStyles],
children: ` / ${getDurationTime(duration)}`
})]
});
}));
const styles = _reactNative.StyleSheet.create({
durationText: {
color: 'white'
}
});
//# sourceMappingURL=Duration.js.map