react-cm-ui
Version:
React UI for Healthy Church
162 lines (115 loc) • 5.63 kB
JavaScript
"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;