cometchat-react-ui-kit2
Version:
CometChat UI Kit for React App
153 lines (151 loc) • 5.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CometChatDate = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var styles = _interopRequireWildcard(require("./style"));
var _Shared = require("../../../Shared");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var patterns = {
timeFormat: "timeFormat",
dayDateFormat: "dayDateFormat",
dayDateTimeFormat: "dayDateTimeFormat"
};
var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var weekNames = ["Sunday", "Monday", "Tuseday", "Wednesday", "Thursday", "Friday", "Saturday"];
/**
* CometChatDate is a component useful for displaying date/time
* This component displays the date/time based on pattern parameter.
*
* @Version 1.0.0
* @author CometChat
*
*/
/**
* CometChatDate is a component useful for displaying date/time
* This component displays the date/time based on pattern parameter.
*
* @Version 1.0.0
* @author CometChat
*
*/
var CometChatDate = function CometChatDate(props) {
var date = new Date(props.timestamp * 1000);
var getWeekOfDay = function getWeekOfDay() {
var weekDay = date.getDay();
var week = weekNames[weekDay];
return week.substring(0, 3);
};
var getMonthOfDay = function getMonthOfDay() {
var month = date.getMonth();
var mnth = monthNames[month];
return mnth.substring(0, 3);
};
var getDateFormat = function getDateFormat() {
if (props.pattern === patterns.dayDateFormat) {
return date.getDate() + " " + getMonthOfDay() + ", " + date.getFullYear();
}
var dt = date.getDate();
if (dt < 10) {
dt = "0" + dt;
}
return dt + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
};
var getMinute = function getMinute(date) {
if (date.getMinutes() < 10) {
return "0".concat(date.getMinutes());
} else return date.getMinutes();
};
var getTimeFormat = function getTimeFormat() {
var timeString = date.getHours();
var postString = "AM";
if (timeString > 12) {
postString = "PM";
timeString = parseInt(timeString % 12);
}
if (timeString < 10) {
timeString = "0".concat(timeString);
}
return timeString + ":" + getMinute(date) + " " + postString;
};
var getDate = function getDate() {
var today = new Date();
if (today.getMonth() === date.getMonth() && today.getFullYear() === date.getFullYear()) {
var diff = today.getDate() - date.getDate();
if (diff === 0) {
if (props.pattern === patterns.dayDateTimeFormat) {
return getTimeFormat();
}
return (0, _Shared.localize)("TODAY");
} else if (diff === 1) {
return (0, _Shared.localize)("YESTERDAY");
} else if (diff < 7) {
return getWeekOfDay();
} else {
return getDateFormat();
}
} else {
return getDateFormat();
}
};
var getFormattedDate = function getFormattedDate() {
if (props.customPattern) {
return props.customPattern(props.timestamp);
} else if (props.pattern && props.pattern != null) {
var formattedDate = "";
switch (props.pattern) {
case patterns.timeFormat:
formattedDate = getTimeFormat();
break;
case patterns.dayDateFormat:
case patterns.dayDateTimeFormat:
formattedDate = getDate();
break;
default:
break;
}
return formattedDate;
}
return null;
};
return /*#__PURE__*/_react["default"].createElement("span", {
style: styles.textStyle(props)
}, getFormattedDate());
};
exports.CometChatDate = CometChatDate;
CometChatDate.defaultProps = {
timestamp: 0,
pattern: patterns.timeFormat,
customPattern: null,
style: {
textColor: "rgb(20, 20, 20)",
textFont: "500 11px Inter,sans-serif"
}
};
CometChatDate.propTypes = {
/**
* Unix epoch time.
*/
timestamp: _propTypes["default"].number,
/**
* Pattern for Date.
* one of
* 1. timeFormat: "hh:mm a".
* 2. dayDateFormat: Today, Yesterday, week-day or "d MMM, yyyy".
* 3. dayDateTimeFormat: Today, Yesterday, week-day or "dd/mm/yyyy".
*/
pattern: _propTypes["default"].oneOf([patterns.timeFormat, patterns.dayDateFormat, patterns.dayDateTimeFormat]),
/**
* A function with returning string for custom date reprasentation.
*/
customPattern: _propTypes["default"].func,
/**
* Style
*/
style: _propTypes["default"].object
};