ringcentral-widget
Version:
RingCentral Integration Widget Library
160 lines (132 loc) • 4.69 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 _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _DynamicsFont = require('../../assets/DynamicsFont/DynamicsFont.scss');
var _DynamicsFont2 = _interopRequireDefault(_DynamicsFont);
var _formatDuration = require('../../lib/formatDuration');
var _formatDuration2 = _interopRequireDefault(_formatDuration);
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 }; }
function getCurrentStatus(_ref, currentLocale) {
var direction = _ref.direction,
result = _ref.result;
if (direction === 'Inbound') {
if (result === 'Missed') {
return {
status: _i18n2.default.getString('missed', currentLocale),
icon: _DynamicsFont2.default.missed,
isMissedCall: true
};
}
return {
status: _i18n2.default.getString('inBound', currentLocale),
icon: _DynamicsFont2.default.inbound
};
}
return {
status: _i18n2.default.getString('outBound', currentLocale),
icon: _DynamicsFont2.default.outbound
};
}
function CallItem(_ref2) {
var call = _ref2.call,
dateTimeFormatter = _ref2.dateTimeFormatter,
currentLocale = _ref2.currentLocale;
var duration = call.duration,
startTime = call.startTime;
var _getCurrentStatus = getCurrentStatus(call, currentLocale),
status = _getCurrentStatus.status,
icon = _getCurrentStatus.icon,
isMissedCall = _getCurrentStatus.isMissedCall;
startTime = dateTimeFormatter({ utcTimestamp: new Date(startTime).getTime() });
duration = (0, _formatDuration2.default)(duration);
return _react2.default.createElement(
'div',
{
className: _styles2.default.callItem
},
_react2.default.createElement(
'dl',
{ className: (0, _classnames2.default)(_styles2.default.dl, isMissedCall ? _styles2.default.missedCall : '') },
_react2.default.createElement(
'dt',
{ className: _styles2.default.status, title: status },
_react2.default.createElement(
'span',
{ className: _styles2.default.iconWrapper },
_react2.default.createElement('i', { className: (0, _classnames2.default)(icon, _styles2.default.callIcon), title: status })
),
_react2.default.createElement(
'span',
{ title: status },
status
),
_react2.default.createElement(
'small',
{ className: _styles2.default.duration, title: duration },
duration
)
),
_react2.default.createElement(
'dd',
{ className: _styles2.default.time, title: startTime },
startTime
)
)
);
}
CallItem.propTypes = {
call: _propTypes2.default.object.isRequired,
dateTimeFormatter: _propTypes2.default.func.isRequired,
currentLocale: _propTypes2.default.string.isRequired
};
function RecentActivityMessages(_ref3) {
var currentLocale = _ref3.currentLocale,
calls = _ref3.calls,
isCallsLoaded = _ref3.isCallsLoaded,
dateTimeFormatter = _ref3.dateTimeFormatter;
var callListView = null;
if (!isCallsLoaded) {
callListView = _react2.default.createElement(_Spinner2.default, { className: _styles2.default.spinner, ringWidth: 4 });
} else if (calls.length > 0) {
callListView = calls.map(function (call) {
return _react2.default.createElement(CallItem, {
key: call.id,
call: call,
currentLocale: currentLocale,
dateTimeFormatter: dateTimeFormatter
});
});
} else {
callListView = _react2.default.createElement(
'p',
{ className: _styles2.default.noRecords },
_i18n2.default.getString('noRecords', currentLocale)
);
}
return _react2.default.createElement(
'div',
{ className: _styles2.default.calls },
callListView
);
}
RecentActivityMessages.propTypes = {
currentLocale: _propTypes2.default.string.isRequired,
calls: _propTypes2.default.array.isRequired,
isCallsLoaded: _propTypes2.default.bool.isRequired,
dateTimeFormatter: _propTypes2.default.func.isRequired
};
//# sourceMappingURL=index.js.map