react-custom-share
Version:
Social sharing buttons for React
71 lines (55 loc) • 2.54 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _ShareButton = require('./ShareButton');
var _ShareButton2 = _interopRequireDefault(_ShareButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
var ShareBlock = function ShareBlock(props) {
var url = props.url,
_props$button = props.button,
Button = _props$button === undefined ? _ShareButton2.default : _props$button,
buttons = props.buttons,
_props$className = props.className,
className = _props$className === undefined ? '' : _props$className,
buttonClassName = props.buttonClassName,
htmlAttributes = props.htmlAttributes,
blockRest = _objectWithoutProperties(props, ['url', 'button', 'buttons', 'className', 'buttonClassName', 'htmlAttributes']);
return _react2.default.createElement(
'div',
_extends({ className: className + ' rcs-buttons' }, htmlAttributes),
buttons.map(function (button) {
var network = button.network,
Icon = button.icon,
buttonRest = _objectWithoutProperties(button, ['network', 'icon']);
var rest = _extends({}, blockRest, buttonRest);
return _react2.default.createElement(
Button,
_extends({
key: network,
network: network,
url: url,
className: buttonClassName
}, rest),
_react2.default.createElement(Icon, null)
);
})
);
};
ShareBlock.propTypes = {
url: _propTypes2.default.string.isRequired,
text: _propTypes2.default.string,
longtext: _propTypes2.default.string,
button: _propTypes2.default.func,
buttons: _propTypes2.default.array.isRequired,
buttonClassName: _propTypes2.default.string,
className: _propTypes2.default.string,
htmlAttributes: _propTypes2.default.object
};
exports.default = ShareBlock;