ringcentral-widget
Version:
RingCentral Integration Widget Library
117 lines (96 loc) • 3.94 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
exports.default = ContactDisplay;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _formatNumber = require('ringcentral-integration/lib/formatNumber');
var _formatNumber2 = _interopRequireDefault(_formatNumber);
var _DropdownSelect = require('../DropdownSelect');
var _DropdownSelect2 = _interopRequireDefault(_DropdownSelect);
var _i18n = require('./i18n');
var _i18n2 = _interopRequireDefault(_i18n);
var _styles = require('./styles.scss');
var _styles2 = _interopRequireDefault(_styles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ContactDisplay(_ref) {
var className = _ref.className,
contactMatches = _ref.contactMatches,
selected = _ref.selected,
onSelectContact = _ref.onSelectContact,
disabled = _ref.disabled,
isLogging = _ref.isLogging,
fallBackName = _ref.fallBackName,
areaCode = _ref.areaCode,
countryCode = _ref.countryCode,
phoneNumber = _ref.phoneNumber,
currentLocale = _ref.currentLocale,
groupNumbers = _ref.groupNumbers;
var contentEl = void 0;
if (groupNumbers) {
contentEl = groupNumbers.join(', ');
} else if (contactMatches.length === 0) {
contentEl = fallBackName || phoneNumber && (0, _formatNumber2.default)({
phoneNumber: phoneNumber,
countryCode: countryCode,
areaCode: areaCode
}) || _i18n2.default.getString('unknownNumber', currentLocale);
} else if (contactMatches.length === 1) {
contentEl = contactMatches[0].name;
} else if (contactMatches.length > 1) {
var options = [{}].concat((0, _toConsumableArray3.default)(contactMatches));
contentEl = _react2.default.createElement(_DropdownSelect2.default, {
className: _styles2.default.select,
value: '' + selected,
onChange: onSelectContact,
disabled: disabled || isLogging,
options: options,
valueFunction: function valueFunction(_, idx) {
return '' + (idx - 1);
},
renderFunction: function renderFunction(entity, idx) {
return idx === 0 ? _i18n2.default.getString('select', currentLocale) : entity.name + ' ' + _i18n2.default.getString('phoneSource.' + entity.entityType);
},
renderValue: function renderValue(value) {
value = parseInt(value, 10) + 1;
return value === 0 ? _i18n2.default.getString('select', currentLocale) : options[value].name + ' ' + _i18n2.default.getString('phoneSource.' + options[value].entityType);
},
dropdownAlign: 'left',
titleEnabled: true,
stopPropagation: true
});
}
return _react2.default.createElement(
'div',
{
className: (0, _classnames2.default)(_styles2.default.root, className) },
contentEl
);
}
ContactDisplay.propTypes = {
className: _react.PropTypes.string,
contactMatches: _react.PropTypes.arrayOf(_react.PropTypes.any).isRequired,
selected: _react.PropTypes.number.isRequired,
onSelectContact: _react.PropTypes.func,
disabled: _react.PropTypes.bool.isRequired,
isLogging: _react.PropTypes.bool.isRequired,
fallBackName: _react.PropTypes.string,
areaCode: _react.PropTypes.string.isRequired,
countryCode: _react.PropTypes.string.isRequired,
phoneNumber: _react.PropTypes.string,
currentLocale: _react.PropTypes.string.isRequired,
groupNumbers: _react.PropTypes.arrayOf(_react.PropTypes.string)
};
ContactDisplay.defaultProps = {
className: undefined,
onSelectContact: undefined,
fallBackName: '',
phoneNumber: undefined,
groupNumbers: undefined
};
//# sourceMappingURL=index.js.map