ringcentral-widget
Version:
RingCentral Integration Widget Library
118 lines (97 loc) • 3.47 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = RecentActivityMessages;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bind = require('classnames/bind');
var _bind2 = _interopRequireDefault(_bind);
var _Spinner = require('../Spinner');
var _Spinner2 = _interopRequireDefault(_Spinner);
var _styles = require('./styles.scss');
var _styles2 = _interopRequireDefault(_styles);
var _i18n = require('./i18n');
var _i18n2 = _interopRequireDefault(_i18n);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var cx = _bind2.default.bind(_styles2.default);
function MessageItem(_ref) {
var message = _ref.message,
navigateTo = _ref.navigateTo,
dateTimeFormatter = _ref.dateTimeFormatter;
var subject = message.subject,
creationTime = message.creationTime,
readStatus = message.readStatus,
conversationId = message.conversationId;
var isUnread = readStatus !== 'Read';
var time = dateTimeFormatter({ utcTimestamp: creationTime });
return _react2.default.createElement(
'div',
{
className: cx('messageItem', { localMessageItem: !message.fromRemote }),
onClick: function onClick() {
return !message.fromRemote && navigateTo('/conversations/' + conversationId);
}
},
_react2.default.createElement(
'dl',
{ className: _styles2.default.dl },
_react2.default.createElement(
'dt',
{ className: cx('messageSubject', { unread: isUnread }), title: subject },
subject
),
_react2.default.createElement(
'dd',
{ className: cx('messageTime', { unread: isUnread }), title: time },
time
)
)
);
}
MessageItem.propTypes = {
message: _propTypes2.default.object.isRequired,
navigateTo: _propTypes2.default.func.isRequired,
dateTimeFormatter: _propTypes2.default.func.isRequired
};
function RecentActivityMessages(_ref2) {
var currentLocale = _ref2.currentLocale,
messages = _ref2.messages,
isMessagesLoaded = _ref2.isMessagesLoaded,
navigateTo = _ref2.navigateTo,
dateTimeFormatter = _ref2.dateTimeFormatter;
var messageListView = null;
if (!isMessagesLoaded) {
messageListView = _react2.default.createElement(_Spinner2.default, { className: _styles2.default.spinner, ringWidth: 4 });
} else if (messages.length > 0) {
messageListView = messages.map(function (message) {
return _react2.default.createElement(MessageItem, {
key: message.id,
message: message,
navigateTo: navigateTo,
dateTimeFormatter: dateTimeFormatter
});
});
} else {
messageListView = _react2.default.createElement(
'p',
{ className: _styles2.default.noRecords },
_i18n2.default.getString('noRecords', currentLocale)
);
}
return _react2.default.createElement(
'div',
{ className: _styles2.default.messages },
messageListView
);
}
RecentActivityMessages.propTypes = {
currentLocale: _propTypes2.default.string.isRequired,
messages: _propTypes2.default.array.isRequired,
isMessagesLoaded: _propTypes2.default.bool.isRequired,
navigateTo: _propTypes2.default.func.isRequired,
dateTimeFormatter: _propTypes2.default.func.isRequired
};
//# sourceMappingURL=index.js.map