ringcentral-widget
Version:
RingCentral Integration Widget Library
164 lines (137 loc) • 5.72 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactRedux = require('react-redux');
var _callDirections = require('ringcentral-integration/enums/callDirections');
var _callDirections2 = _interopRequireDefault(_callDirections);
var _RecentActivityPanel = require('../../components/RecentActivityPanel');
var _RecentActivityPanel2 = _interopRequireDefault(_RecentActivityPanel);
var _DynamicsFont = require('../../assets/DynamicsFont/DynamicsFont.scss');
var _DynamicsFont2 = _interopRequireDefault(_DynamicsFont);
var _RecentActivityMessages = require('../../components/RecentActivityMessages');
var _RecentActivityMessages2 = _interopRequireDefault(_RecentActivityMessages);
var _RecentActivityCalls = require('../../components/RecentActivityCalls');
var _RecentActivityCalls2 = _interopRequireDefault(_RecentActivityCalls);
var _VoicemailIcon = require('../../assets/images/VoicemailIcon.svg');
var _VoicemailIcon2 = _interopRequireDefault(_VoicemailIcon);
var _Fax = require('../../assets/images/Fax.svg');
var _Fax2 = _interopRequireDefault(_Fax);
var _i18n = require('./i18n');
var _i18n2 = _interopRequireDefault(_i18n);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getTabs(_ref) {
var currentLocale = _ref.currentLocale,
dateTimeFormatter = _ref.dateTimeFormatter,
navigateTo = _ref.navigateTo,
recentMessages = _ref.recentMessages,
recentCalls = _ref.recentCalls,
currentContact = _ref.currentContact;
return [{
icon: _react2.default.createElement(_VoicemailIcon2.default, { width: 23, height: 23 }),
label: _i18n2.default.getString('voicemail', currentLocale),
path: 'voicemails',
isActive: function isActive(path) {
return path === 'voicemails';
},
view: null,
getData: function getData() {},
cleanUp: function cleanUp() {}
}, {
icon: _react2.default.createElement('span', { className: _DynamicsFont2.default.composeText }),
label: _i18n2.default.getString('text', currentLocale),
path: 'recentMessages',
noticeCounts: recentMessages.unreadMessageCounts || 0,
isActive: function isActive(path) {
return path === 'recentMessages';
},
view: _react2.default.createElement(_RecentActivityMessages2.default, {
messages: recentMessages.messages,
navigateTo: navigateTo,
dateTimeFormatter: dateTimeFormatter,
currentLocale: currentLocale,
isMessagesLoaded: recentMessages.isMessagesLoaded
}),
getData: function getData() {
recentMessages.getMessages(currentContact);
},
cleanUp: function cleanUp() {
return recentMessages.cleanUpMessages();
}
}, {
icon: _react2.default.createElement(_Fax2.default, { width: 23, height: 23 }),
label: _i18n2.default.getString('fax', currentLocale),
path: 'faxes',
isActive: function isActive(path) {
return path === 'faxes';
},
view: null,
getData: function getData() {},
cleanUp: function cleanUp() {}
}, {
icon: _react2.default.createElement('span', { className: _DynamicsFont2.default.active }),
label: _i18n2.default.getString('call', currentLocale),
path: 'recentCalls',
isActive: function isActive(path) {
return path === 'recentCalls';
},
view: _react2.default.createElement(_RecentActivityCalls2.default, {
calls: recentCalls.calls,
dateTimeFormatter: dateTimeFormatter,
currentLocale: currentLocale,
isCallsLoaded: recentCalls.isCallsLoaded
}),
getData: function getData() {
recentCalls.getCalls(currentContact);
},
cleanUp: function cleanUp() {
return recentCalls.cleanUpCalls();
}
}];
}
function mapToProps(_, _ref2) {
var locale = _ref2.locale,
_ref2$currentLocale = _ref2.currentLocale,
currentLocale = _ref2$currentLocale === undefined ? locale.currentLocale : _ref2$currentLocale,
dateTimeFormat = _ref2.dateTimeFormat,
navigateTo = _ref2.navigateTo,
_ref2$dateTimeFormatt = _ref2.dateTimeFormatter,
dateTimeFormatter = _ref2$dateTimeFormatt === undefined ? function () {
return dateTimeFormat.formatDateTime.apply(dateTimeFormat, arguments);
} : _ref2$dateTimeFormatt,
recentMessages = _ref2.recentMessages,
recentCalls = _ref2.recentCalls,
contactMatcher = _ref2.contactMatcher,
getSession = _ref2.getSession;
var session = getSession();
var currentContact = session.contactMatch;
var contactMapping = contactMatcher && contactMatcher.dataMapping;
var phoneNumber = session.direction === _callDirections2.default.outbound ? session.to : session.from;
if (!currentContact) {
currentContact = contactMapping && contactMapping[phoneNumber];
if (currentContact && currentContact.length >= 1) {
currentContact = currentContact[0];
}
}
var ready = dateTimeFormat.ready && locale.ready && contactMatcher.ready && recentMessages.ready && recentCalls.ready;
return {
currentLocale: currentLocale,
title: _i18n2.default.getString('recentActivities', locale.currentLocale),
showSpinner: !ready,
currentContact: currentContact,
calls: recentCalls.calls || [],
tabs: getTabs({
currentLocale: currentLocale,
dateTimeFormatter: dateTimeFormatter,
navigateTo: navigateTo,
currentContact: currentContact,
recentMessages: recentMessages,
recentCalls: recentCalls
}),
defaultTab: 'recentCalls'
};
}
exports.default = (0, _reactRedux.connect)(mapToProps)(_RecentActivityPanel2.default);
//# sourceMappingURL=index.js.map