ringcentral-widget
Version: 
RingCentral Integration Widget Library
116 lines (87 loc) • 3.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.default = exports.propTypes = exports.mapToProps = exports.mapToFunctions = undefined;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactRedux = require('react-redux');
var _Auth = require('ringcentral-integration/modules/Auth');
var _Auth2 = _interopRequireDefault(_Auth);
var _Locale = require('ringcentral-integration/modules/Locale');
var _Locale2 = _interopRequireDefault(_Locale);
var _RateLimiter = require('ringcentral-integration/modules/RateLimiter');
var _RateLimiter2 = _interopRequireDefault(_RateLimiter);
var _ConnectivityMonitor = require('ringcentral-integration/modules/ConnectivityMonitor');
var _ConnectivityMonitor2 = _interopRequireDefault(_ConnectivityMonitor);
var _LoginPanel = require('../../components/LoginPanel');
var _LoginPanel2 = _interopRequireDefault(_LoginPanel);
var _styles = require('./styles.scss');
var _styles2 = _interopRequireDefault(_styles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function WelcomeContainer(props) {
  return _react2.default.createElement(
    'div',
    { className: _styles2.default.root },
    _react2.default.createElement(_LoginPanel2.default, {
      currentLocale: props.currentLocale,
      disabled: props.disabled,
      setupProxyFrame: props.setupProxyFrame,
      clearProxyFrame: props.clearProxyFrame,
      onLoginButtonClick: props.onLoginButtonClick
    }),
    props.children
  );
}
WelcomeContainer.propTypes = {
  children: _react.PropTypes.node,
  currentLocale: _react.PropTypes.string.isRequired,
  setupProxyFrame: _react.PropTypes.func.isRequired,
  clearProxyFrame: _react.PropTypes.func.isRequired,
  onLoginButtonClick: _react.PropTypes.func.isRequired,
  disabled: _react.PropTypes.bool
};
WelcomeContainer.defaultProps = {
  children: null,
  disabled: false
};
function mapToProps(_, _ref) {
  var auth = _ref.auth,
      locale = _ref.locale,
      rateLimiter = _ref.rateLimiter,
      connectivityMonitor = _ref.connectivityMonitor;
  return {
    currentLocale: locale.currentLocale,
    disabled: !auth.proxyLoaded || rateLimiter.throttling || !connectivityMonitor.connectivity
  };
}
function mapToFunctions(_, _ref2) {
  var auth = _ref2.auth,
      onLogin = _ref2.onLogin;
  return {
    setupProxyFrame: function setupProxyFrame() {
      auth.setupProxyFrame(onLogin);
    },
    clearProxyFrame: function clearProxyFrame() {
      auth.clearProxyFrame();
    },
    onLoginButtonClick: function onLoginButtonClick() {
      auth.openOAuthPage();
    }
  };
}
var WelcomePage = (0, _reactRedux.connect)(mapToProps, mapToFunctions)(WelcomeContainer);
var propTypes = {
  auth: _react.PropTypes.instanceOf(_Auth2.default).isRequired,
  locale: _react.PropTypes.instanceOf(_Locale2.default).isRequired,
  rateLimiter: _react.PropTypes.instanceOf(_RateLimiter2.default).isRequired,
  connectivityMonitor: _react.PropTypes.instanceOf(_ConnectivityMonitor2.default).isRequired,
  mainUrl: _react.PropTypes.string,
  onLogin: _react.PropTypes.func
};
WelcomePage.propTypes = propTypes;
exports.mapToFunctions = mapToFunctions;
exports.mapToProps = mapToProps;
exports.propTypes = propTypes;
exports.default = WelcomePage;
//# sourceMappingURL=index.js.map