UNPKG

cometchat-react-ui-kit2

Version:

CometChat UI Kit for React App

153 lines (151 loc) 5.83 kB
"use strict"; 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 };