UNPKG

wix-style-react

Version:
215 lines (170 loc) • 7.83 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _class, _temp; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _Hover = require('./Hover'); var _Hover2 = _interopRequireDefault(_Hover); var _Card = require('../Card'); var _Card2 = _interopRequireDefault(_Card); var _Button = require('../Button'); var _Button2 = _interopRequireDefault(_Button); var _TextButton = require('../TextButton'); var _TextButton2 = _interopRequireDefault(_TextButton); var _Text = require('../Text'); var _Text2 = _interopRequireDefault(_Text); var _Heading = require('../Heading'); var _Heading2 = _interopRequireDefault(_Heading); var _Proportion = require('../Proportion'); var _Proportion2 = _interopRequireDefault(_Proportion); var _CardGalleryItem = require('./CardGalleryItem.scss'); var _CardGalleryItem2 = _interopRequireDefault(_CardGalleryItem); var _CardGalleryItemAnimation = require('./CardGalleryItemAnimation.scss'); var _CardGalleryItemAnimation2 = _interopRequireDefault(_CardGalleryItemAnimation); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var CardGalleryItem = (_temp = _class = function (_React$Component) { _inherits(CardGalleryItem, _React$Component); function CardGalleryItem() { _classCallCheck(this, CardGalleryItem); return _possibleConstructorReturn(this, (CardGalleryItem.__proto__ || Object.getPrototypeOf(CardGalleryItem)).apply(this, arguments)); } _createClass(CardGalleryItem, [{ key: 'render', value: function render() { var _props = this.props, title = _props.title, subtitle = _props.subtitle, backgroundImageUrl = _props.backgroundImageUrl, primaryActionProps = _props.primaryActionProps, secondaryActionProps = _props.secondaryActionProps, className = _props.className, dataHook = _props.dataHook; var hoveredContent = _react2.default.createElement( 'div', { className: _CardGalleryItem2.default.hoveredContent, 'data-hook': 'hovered-content' }, _react2.default.createElement( 'div', { className: _CardGalleryItem2.default.primaryAction }, _react2.default.createElement( _Button2.default, { dataHook: 'primary-action' }, primaryActionProps.label ), _react2.default.createElement( 'div', { className: _CardGalleryItem2.default.secondaryAction }, _react2.default.createElement( _TextButton2.default, { skin: 'light', onClick: function onClick(event) { secondaryActionProps.onClick(event); event.stopPropagation(); }, dataHook: 'secondary-action' }, secondaryActionProps.label ) ) ) ); return _react2.default.createElement( _Proportion2.default, null, _react2.default.createElement( 'div', { className: (0, _classnames2.default)(_CardGalleryItem2.default.root, className), onClick: primaryActionProps.onClick, 'data-hook': dataHook }, _react2.default.createElement( _Card2.default, { stretchVertically: true, hideOverflow: true }, _react2.default.createElement( _Hover2.default, { classNames: _CardGalleryItemAnimation2.default, timeout: 200, hoveredContent: hoveredContent, dataHook: 'hover-component' }, _react2.default.createElement('div', { className: _CardGalleryItem2.default.content, style: { backgroundImage: 'url(' + backgroundImageUrl + ')' }, 'data-hook': 'background-image' }), _react2.default.createElement(_Card2.default.Divider, null), _react2.default.createElement( 'div', { className: _CardGalleryItem2.default.footer }, _react2.default.createElement( _Heading2.default, { appearance: 'H4', ellipsis: true, 'data-hook': 'title' }, title ), _react2.default.createElement( _Text2.default, { size: 'small', weight: 'thin', secondary: true, ellipsis: true, 'data-hook': 'subtitle' }, subtitle ) ) ) ) ) ); } }]); return CardGalleryItem; }(_react2.default.Component), _class.displayName = 'CardGalleryItem', _class.propTypes = { /** Card title */ title: _propTypes2.default.node, /** Card subtitle */ subtitle: _propTypes2.default.node, /** Background image of CardGalleryItem */ backgroundImageUrl: _propTypes2.default.string, /** Properties for primary action button */ primaryActionProps: _propTypes2.default.shape({ /** Label of primary action button */ label: _propTypes2.default.node, /** On click handler of primary action button and of the whole card */ onClick: _propTypes2.default.func }).isRequired, /** Properties for secondary action text button */ secondaryActionProps: _propTypes2.default.shape({ /** Label of secondary action text button */ label: _propTypes2.default.node, /** On click handler of secondary action text button */ onClick: _propTypes2.default.func }).isRequired, /** className for root */ className: _propTypes2.default.string, /** data-hook value */ dataHook: _propTypes2.default.string }, _class.defaultProps = { primaryActionProps: { onClick: function onClick() {} }, secondaryActionProps: { onClick: function onClick() {} } }, _temp); exports.default = CardGalleryItem;