UNPKG

react-cm-ui

Version:
162 lines (115 loc) 5.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classnames = _interopRequireDefault(require("classnames")); var _momentTimezone = _interopRequireDefault(require("moment-timezone")); var _reactMomentProptypes = _interopRequireDefault(require("react-moment-proptypes")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var propTypes = { className: _propTypes["default"].string, // eslint-disable-next-line no-underscore-dangle date: _reactMomentProptypes["default"].momentObj.withPredicate(function (momentObj) { return momentObj._isUTC; }).isRequired, id: _propTypes["default"].string, locale: _propTypes["default"].string, style: _propTypes["default"].shape({}), relativeTime: _propTypes["default"].shape({ s: _propTypes["default"].string, ss: _propTypes["default"].string, m: _propTypes["default"].string, mm: _propTypes["default"].string, h: _propTypes["default"].string, hh: _propTypes["default"].string, d: _propTypes["default"].string, dd: _propTypes["default"].string, M: _propTypes["default"].string, MM: _propTypes["default"].string, y: _propTypes["default"].string, yy: _propTypes["default"].string }), relativeTimeRounding: _propTypes["default"].oneOf([Math.round, Math.floor]), relativeTimeThreshold: _propTypes["default"].shape({ ss: _propTypes["default"].number, s: _propTypes["default"].number, m: _propTypes["default"].number, h: _propTypes["default"].number, d: _propTypes["default"].number, M: _propTypes["default"].number }) }; var defaultProps = { className: undefined, id: undefined, locale: 'en', style: {}, relativeTime: {}, relativeTimeRounding: undefined, relativeTimeThreshold: {} }; function TimeFromNow(props) { var className = props.className, date = props.date, id = props.id, locale = props.locale, style = props.style, relativeTime = props.relativeTime, relativeTimeThreshold = props.relativeTimeThreshold, relativeTimeRounding = props.relativeTimeRounding; var containerClasses = (0, _classnames["default"])('ui', 'time_from_now', className); var defaultRelativeTime = (0, _momentTimezone["default"])().locale(locale).localeData()._relativeTime; // eslint-disable-line no-underscore-dangle, max-len var defaultRounding = _momentTimezone["default"].relativeTimeRounding(); /* eslint-disable camelcase */ var defaultThreshold_FewSeconds = _momentTimezone["default"].relativeTimeThreshold('ss'); var defaultThreshold_Seconds = _momentTimezone["default"].relativeTimeThreshold('s'); var defaultThreshold_Minutes = _momentTimezone["default"].relativeTimeThreshold('m'); var defaultThreshold_Hours = _momentTimezone["default"].relativeTimeThreshold('h'); var defaultThreshold_Days = _momentTimezone["default"].relativeTimeThreshold('d'); var defaultThreshold_Months = _momentTimezone["default"].relativeTimeThreshold('M'); /* eslint-enable camelcase */ // Customizing moment's relativeTime if (relativeTime) { _momentTimezone["default"].updateLocale(locale, { relativeTime: relativeTime }); } // Customizing moment's relativeTimeRounding if (relativeTimeRounding) { _momentTimezone["default"].relativeTimeRounding(relativeTimeRounding); } // Customizing moment's relativeTimeThreshold if (relativeTimeThreshold) { /* eslint-disable camelcase */ _momentTimezone["default"].relativeTimeThreshold('ss', relativeTimeThreshold.ss || defaultThreshold_FewSeconds); _momentTimezone["default"].relativeTimeThreshold('s', relativeTimeThreshold.s || defaultThreshold_Seconds); _momentTimezone["default"].relativeTimeThreshold('m', relativeTimeThreshold.m || defaultThreshold_Minutes); _momentTimezone["default"].relativeTimeThreshold('h', relativeTimeThreshold.h || defaultThreshold_Hours); _momentTimezone["default"].relativeTimeThreshold('d', relativeTimeThreshold.d || defaultThreshold_Days); _momentTimezone["default"].relativeTimeThreshold('M', relativeTimeThreshold.M || defaultThreshold_Months); /* eslint-enable camelcase */ } // Setting fromNow string with customized relativeTime var fromNowTime = (0, _momentTimezone["default"])(date).fromNow(true); // Reverting moment's relativeTime. _momentTimezone["default"].updateLocale(locale, { relativeTime: defaultRelativeTime }); // Reverting moment's relativeTimeRounding. _momentTimezone["default"].relativeTimeRounding(defaultRounding); // Reverting moment's relativeTimeThresholds. /* eslint-disable camelcase */ _momentTimezone["default"].relativeTimeThreshold('ss', defaultThreshold_FewSeconds); _momentTimezone["default"].relativeTimeThreshold('s', defaultThreshold_Seconds); _momentTimezone["default"].relativeTimeThreshold('m', defaultThreshold_Minutes); _momentTimezone["default"].relativeTimeThreshold('h', defaultThreshold_Hours); _momentTimezone["default"].relativeTimeThreshold('d', defaultThreshold_Days); _momentTimezone["default"].relativeTimeThreshold('M', defaultThreshold_Months); /* eslint-enable camelcase */ return /*#__PURE__*/_react["default"].createElement("span", { className: containerClasses, id: id, style: style }, fromNowTime); } TimeFromNow.propTypes = propTypes; TimeFromNow.defaultProps = defaultProps; var _default = TimeFromNow; exports["default"] = _default;