wix-style-react
Version:
103 lines (80 loc) • 3.48 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _SocialButtonFacebook = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonFacebook"));
var _SocialButtonInstagram = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonInstagram"));
var _SocialButtonLinkedIn = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonLinkedIn"));
var _SocialButtonPinterest = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonPinterest"));
var _SocialButtonYoutube = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonYoutube"));
var _SocialButtonTwitter = _interopRequireDefault(require("wix-ui-icons-common/system/SocialButtonTwitter"));
var _buttonNext = require("wix-ui-core/dist/src/components/button-next");
var _Text = _interopRequireDefault(require("../Text"));
var _SocialButtonSt = require("./SocialButton.st.css");
var _constants = require("./constants");
var iconMap = {
facebook: _SocialButtonFacebook["default"],
instagram: _SocialButtonInstagram["default"],
twitter: _SocialButtonTwitter["default"],
linkedin: _SocialButtonLinkedIn["default"],
pinterest: _SocialButtonPinterest["default"],
youtube: _SocialButtonYoutube["default"]
};
var Icon = /*#__PURE__*/_react["default"].memo(function (props) {
var icon = props.icon,
disabled = props.disabled,
dataHook = props.dataHook,
text = props.text;
var SocialIcon = iconMap[icon];
return /*#__PURE__*/_react["default"].createElement(_buttonNext.ButtonNext, {
className: (0, _SocialButtonSt.st)(_SocialButtonSt.classes.icon, {
type: icon,
disabled: disabled,
single: !text
}),
"data-hook": dataHook
}, !!iconMap[icon] && /*#__PURE__*/_react["default"].createElement(SocialIcon, null));
});
/** Social networks share button with title */
var SocialButton = function SocialButton(_ref) {
var dataHook = _ref.dataHook,
text = _ref.text,
onClick = _ref.onClick,
icon = _ref.icon,
disabled = _ref.disabled;
return /*#__PURE__*/_react["default"].createElement("div", {
className: (0, _SocialButtonSt.st)(_SocialButtonSt.classes.root, {
disabled: disabled
}),
"data-hook": dataHook,
onClick: disabled ? undefined : onClick
}, /*#__PURE__*/_react["default"].createElement(Icon, {
dataHook: _constants.dataHooks.socialIcon,
text: text,
icon: icon,
disabled: disabled
}), text && /*#__PURE__*/_react["default"].createElement(_Text["default"], {
size: "small",
dataHook: _constants.dataHooks.socialTitle,
skin: disabled ? 'disabled' : 'standard'
}, text));
};
SocialButton.propTypes = {
/** hook for testing purposes */
dataHook: _propTypes["default"].string,
/** Text for the button */
text: _propTypes["default"].node,
/** Click handler */
onClick: _propTypes["default"].func,
/** Share button social network type */
icon: _propTypes["default"].oneOf(['facebook', 'instagram', 'twitter', 'linkedin', 'pinterest', 'youtube']),
/** Disable button */
disabled: _propTypes["default"].bool
};
SocialButton.displayName = 'SocialButton';
var _default = SocialButton;
exports["default"] = _default;