UNPKG

@music-loopy/loops

Version:

A React component library for Music Loopy Applications and websites

72 lines (71 loc) 4.63 kB
"use strict"; exports.__esModule = true; exports["default"] = exports.CardButton = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _Icon = _interopRequireDefault(require("../Icon")); var _excluded = ["variant", "size", "children", "image", "onFavouriteClick", "foreground", "favourite"]; var _templateObject, _templateObject2, _templateObject3, _templateObject4; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; } function _taggedTemplateLiteralLoose(e, t) { return t || (t = e.slice(0)), e.raw = t, e; } var StyledButton = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n position: relative;\n min-width: 9em;\n min-height: 7em;\n width: ", ";\n height: ", ";\n background: ", ";\n background-size: cover;\n color: ", ";\n border-radius: 0.5em;\n border: none;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: start;\n overflow: hidden;\n"])), function (props) { return props.size.width || '100%'; }, function (props) { return props.size.height || '100%'; }, function (props) { return props.image ? "url(" + props.image + ")" : props.theme.colors[props.variant || 'primary'].color; }, function (props) { return props.theme.colors[props.foreground || 'dark'].color; }); var StyledHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n width: 100%;\n font-size: 14px;\n font-weight: bold;\n top: 0;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n position: absolute;\n"]))); var StyledBody = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n font-size: 1em;\n font-weight: normal;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-width: 9em;\n min-height: 7em;\n width: ", ";\n height: ", ";\n"])), function (props) { return props.size.width || '100%'; }, function (props) { return props.size.height || '100%'; }); var StyledSpan = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n padding: 0.5em;\n display: flex;\n justify-content: center;\n align-items: center;\n"]))); var CardButton = exports.CardButton = function CardButton(_ref) { var variant = _ref.variant, size = _ref.size, children = _ref.children, image = _ref.image, onFavouriteClick = _ref.onFavouriteClick, foreground = _ref.foreground, favourite = _ref.favourite, props = _objectWithoutPropertiesLoose(_ref, _excluded); return /*#__PURE__*/_react["default"].createElement(StyledButton, _extends({ type: "button", variant: variant, size: size, image: image, foreground: foreground }, props), /*#__PURE__*/_react["default"].createElement(StyledHeader, null, /*#__PURE__*/_react["default"].createElement(StyledSpan, { onClick: favourite === null || favourite === void 0 ? void 0 : favourite.onClick }, favourite && /*#__PURE__*/_react["default"].createElement(_Icon["default"], { name: (favourite === null || favourite === void 0 ? void 0 : favourite.selected) ? 'star' : 'star-outline', size: "1em", fill: foreground || 'dark' })), /*#__PURE__*/_react["default"].createElement(StyledSpan, null, /*#__PURE__*/_react["default"].createElement(_Icon["default"], { name: "dots", size: "1em", fill: foreground || 'dark' }))), /*#__PURE__*/_react["default"].createElement(StyledBody, { size: size }, children)); }; CardButton.propTypes = process.env.NODE_ENV !== "production" ? { variant: _propTypes["default"].string, label: _propTypes["default"].string.isRequired, onClick: _propTypes["default"].func, children: _propTypes["default"].node } : {}; CardButton.defaultProps = { variant: 'primary', size: 'medium', onClick: undefined, children: null }; var _default = exports["default"] = CardButton;