UNPKG

wix-style-react

Version:
103 lines (80 loc) 3.48 kB
"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;