react-facebook-next
Version:
Facebook components like a Login button, Like, Share, Comments or Embedded Post
77 lines (68 loc) • 2.65 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
var _class, _temp;
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import Spinner from 'react-spinner-children';
import Login from './Login';
var LoginButton = (_temp = _class = function (_Component) {
_inherits(LoginButton, _Component);
function LoginButton() {
_classCallCheck(this, LoginButton);
return _possibleConstructorReturn(this, _Component.apply(this, arguments));
}
LoginButton.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
children = _props.children,
buttonClassName = _props.buttonClassName,
iconClassName = _props.iconClassName,
icon = _props.icon,
spinner = _props.spinner,
spinnerClassName = _props.spinnerClassName,
rest = _objectWithoutProperties(_props, ['children', 'buttonClassName', 'iconClassName', 'icon', 'spinner', 'spinnerClassName']);
return React.createElement(Login, _extends({}, rest, {
render: function render(_ref) {
var isWorking = _ref.isWorking,
isLoading = _ref.isLoading,
onClick = _ref.onClick;
return React.createElement(
'button',
{
type: 'button',
className: buttonClassName,
onClick: onClick,
disabled: isWorking || isLoading
},
!!icon && React.createElement('i', { className: iconClassName }),
children,
!!spinner && (isWorking || isLoading) && React.createElement(Spinner, {
config: _this2.props.spinnerConfig,
className: spinnerClassName
})
);
}
}));
};
return LoginButton;
}(Component), _class.propTypes = _extends({}, Login.propTypes, {
spinnerConfig: PropTypes.object.isRequired,
children: PropTypes.node,
className: PropTypes.string,
buttonClassName: PropTypes.string,
iconClassName: PropTypes.string,
icon: PropTypes.bool,
spinnerClassName: PropTypes.string,
spinner: PropTypes.bool
}), _class.defaultProps = _extends({}, Login.defaultProps, {
spinnerConfig: {},
buttonClassName: 'btn btn-lg',
iconClassName: 'fa fa-facebook pull-left',
spinner: true,
icon: true
}), _temp);
export { LoginButton as default };
//# sourceMappingURL=LoginButton.js.map