ringcentral-widget
Version:
RingCentral Integration Widget Library
112 lines (82 loc) • 3.94 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.propTypes = exports.mapToProps = exports.mapToFunctions = undefined;
var _reactRedux = require('react-redux');
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _formatNumber = require('ringcentral-integration/lib/formatNumber');
var _formatNumber2 = _interopRequireDefault(_formatNumber);
var _Locale = require('ringcentral-integration/modules/Locale');
var _Locale2 = _interopRequireDefault(_Locale);
var _CallingSettings = require('ringcentral-integration/modules/CallingSettings');
var _CallingSettings2 = _interopRequireDefault(_CallingSettings);
var _callingModes = require('ringcentral-integration/modules/CallingSettings/callingModes');
var _callingModes2 = _interopRequireDefault(_callingModes);
var _Call = require('ringcentral-integration/modules/Call');
var _Call2 = _interopRequireDefault(_Call);
var _ConnectivityMonitor = require('ringcentral-integration/modules/ConnectivityMonitor');
var _ConnectivityMonitor2 = _interopRequireDefault(_ConnectivityMonitor);
var _RateLimiter = require('ringcentral-integration/modules/RateLimiter');
var _RateLimiter2 = _interopRequireDefault(_RateLimiter);
var _DialerPanel = require('../../components/DialerPanel');
var _DialerPanel2 = _interopRequireDefault(_DialerPanel);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function mapToProps(_, _ref) {
var call = _ref.call,
callingSettings = _ref.callingSettings,
connectivityMonitor = _ref.connectivityMonitor,
locale = _ref.locale,
rateLimiter = _ref.rateLimiter,
webphone = _ref.webphone;
var isWebphoneMode = callingSettings.callingMode === _callingModes2.default.webphone;
var waitingWebphoneConnected = isWebphoneMode && webphone && webphone.connecting;
return {
currentLocale: locale.currentLocale,
callingMode: callingSettings.callingMode,
isWebphoneMode: isWebphoneMode,
callButtonDisabled: !call.isIdle || !connectivityMonitor.connectivity || rateLimiter.throttling || waitingWebphoneConnected,
toNumber: call.toNumber,
fromNumbers: callingSettings.fromNumbers,
fromNumber: callingSettings.fromNumber,
showSpinner: !(call.ready && callingSettings.ready && locale.ready && connectivityMonitor.ready && (!isWebphoneMode || !webphone || !waitingWebphoneConnected))
};
}
function mapToFunctions(_, _ref2) {
var call = _ref2.call,
callingSettings = _ref2.callingSettings,
regionSettings = _ref2.regionSettings;
return {
keepToNumber: function keepToNumber(value) {
call.onToNumberChange(value);
},
onCall: function onCall() {
call.onCall();
},
changeFromNumber: function changeFromNumber() {
return callingSettings.updateFromNumber.apply(callingSettings, arguments);
},
formatPhone: function formatPhone(phoneNumber) {
return (0, _formatNumber2.default)({
phoneNumber: phoneNumber,
areaCode: regionSettings && regionSettings.areaCode,
countryCode: regionSettings && regionSettings.countryCode
});
}
};
}
var DialerPage = (0, _reactRedux.connect)(mapToProps, mapToFunctions)(_DialerPanel2.default);
var propTypes = {
call: _propTypes2.default.instanceOf(_Call2.default).isRequired,
callingSettings: _propTypes2.default.instanceOf(_CallingSettings2.default).isRequired,
connectivityMonitor: _propTypes2.default.instanceOf(_ConnectivityMonitor2.default).isRequired,
locale: _propTypes2.default.instanceOf(_Locale2.default).isRequired,
rateLimiter: _propTypes2.default.instanceOf(_RateLimiter2.default).isRequired
};
DialerPage.propTypes = propTypes;
exports.mapToFunctions = mapToFunctions;
exports.mapToProps = mapToProps;
exports.propTypes = propTypes;
exports.default = DialerPage;
//# sourceMappingURL=index.js.map
;