ringcentral-widgets
Version:
RingCentral Integration Widget Library
95 lines (76 loc) • 3.59 kB
JavaScript
"use strict";
require("core-js/modules/es6.object.define-property");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = SmCallControl;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _telephonyStatus = _interopRequireDefault(require("ringcentral-integration/enums/telephonyStatus"));
var _callDirections = _interopRequireDefault(require("ringcentral-integration/enums/callDirections"));
var _CircleButton = _interopRequireDefault(require("../CircleButton"));
var _Mute = _interopRequireDefault(require("../../assets/images/Mute.svg"));
var _Unmute = _interopRequireDefault(require("../../assets/images/Unmute.svg"));
var _End = _interopRequireDefault(require("../../assets/images/End.svg"));
var _styles = _interopRequireDefault(require("./styles.scss"));
var _i18n = _interopRequireDefault(require("./i18n"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function SmCallControl(props) {
var onMute = props.onMute,
onUnmute = props.onUnmute,
onHangup = props.onHangup,
onReject = props.onReject,
isOnMute = props.isOnMute,
callStatus = props.callStatus,
currentLocale = props.currentLocale,
callDirection = props.callDirection; // reject conditions: call direction is inbound & call status is ringing
function canRejectCall() {
return _callDirections["default"].inbound === callDirection && _telephonyStatus["default"].ringing === callStatus;
}
var muteIcon = isOnMute ? _Mute["default"] : _Unmute["default"];
var muteAction = isOnMute ? onUnmute : onMute;
var muteTitle = isOnMute ? 'unmute' : 'mute';
var endTitle = canRejectCall() ? 'reject' : 'hangup';
var endAction = canRejectCall() ? onReject : onHangup;
var disabledCtrl = callStatus === _telephonyStatus["default"].ringing;
return /*#__PURE__*/_react["default"].createElement("div", {
className: _styles["default"].smWraper
}, /*#__PURE__*/_react["default"].createElement("span", {
title: _i18n["default"].getString(muteTitle, currentLocale)
}, /*#__PURE__*/_react["default"].createElement(_CircleButton["default"], {
dataSign: muteTitle,
icon: muteIcon,
onClick: muteAction,
className: (0, _classnames["default"])(_styles["default"].button, disabledCtrl ? _styles["default"].buttonDisabled : null),
disabled: disabledCtrl
})), /*#__PURE__*/_react["default"].createElement("span", {
title: _i18n["default"].getString(endTitle, currentLocale)
}, /*#__PURE__*/_react["default"].createElement(_CircleButton["default"], {
dataSign: endTitle,
showBorder: false,
icon: _End["default"],
onClick: endAction,
className: (0, _classnames["default"])(_styles["default"].hangup, _styles["default"].button)
})));
}
SmCallControl.propTypes = {
onMute: _propTypes["default"].func,
onUnmute: _propTypes["default"].func,
onHangup: _propTypes["default"].func,
onReject: _propTypes["default"].func,
isOnMute: _propTypes["default"].bool,
callStatus: _propTypes["default"].string,
currentLocale: _propTypes["default"].string,
callDirection: _propTypes["default"].string.isRequired
};
SmCallControl.defaultProps = {
onMute: function onMute() {},
onUnmute: function onUnmute() {},
onHangup: function onHangup() {},
onReject: function onReject() {},
isOnMute: false,
callStatus: 'CallConnected',
currentLocale: 'en-US'
};
//# sourceMappingURL=index.js.map