@atlaskit/profilecard
Version:
A React component to display a card with user information.
39 lines (38 loc) • 1.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getRelativeDateKey;
exports.isValidDate = isValidDate;
var _differenceInMonths = _interopRequireDefault(require("date-fns/differenceInMonths"));
var _isThisMonth = _interopRequireDefault(require("date-fns/isThisMonth"));
var _isThisWeek = _interopRequireDefault(require("date-fns/isThisWeek"));
var _isValid = _interopRequireDefault(require("date-fns/isValid"));
function isValidDate(date) {
var today = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
return !!date.getTime && (0, _isValid.default)(date) && date.getTime() <= today.getTime();
}
function getRelativeDateKey(date) {
var today = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
if (!date || !isValidDate(date, today)) {
return null;
}
if ((0, _isThisWeek.default)(date)) {
return 'ThisWeek';
}
if ((0, _isThisMonth.default)(date)) {
return 'ThisMonth';
}
if (date.getFullYear() === today.getFullYear() && date.getMonth() === today.getMonth() - 1) {
return 'LastMonth';
}
var diffInMonths = (0, _differenceInMonths.default)(today, date);
if (diffInMonths < 6) {
return 'AFewMonths';
}
if (diffInMonths <= 12) {
return 'SeveralMonths';
}
return 'MoreThanAYear';
}