@music-loopy/loops
Version:
A React component library for Music Loopy Applications and websites
72 lines (71 loc) • 4.63 kB
JavaScript
;
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;