@music-loopy/loops
Version:
A React component library for Music Loopy Applications and websites
73 lines (72 loc) • 5.28 kB
JavaScript
;
exports.__esModule = true;
exports["default"] = 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 = ["background", "fill", "timeElapsed", "message", "user"];
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
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 ProfileContainer = _styledComponents["default"].button(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n width: 4em;\n height: 3.5em;\n border: 1px solid ", ";\n background: ", ";\n border-radius: 100%;\n overflow: hidden;\n"])), function (props) {
return props.theme.colors[props.fill].color;
}, function (props) {
return props.theme.colors[props.color].color;
});
var RoundImage = _styledComponents["default"].img(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n width: 4em;\n height: 4em;\n border-radius: 50%;\n margin-left: -0.5em;\n margin-top: -0.5em;\n"])));
var BodyContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n width: 100%;\n"])));
var MessageContainer = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: 5px;\n"])));
var MessageText = _styledComponents["default"].p(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n color: ", ";\n"])), function (props) {
return props.theme.colors[props.fill].color;
});
var TimeElapsed = _styledComponents["default"].p(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n margin: 0;\n font-size: 0.8rem;\n font-weight: 400;\n color: hsl(\n from ", " h s calc(l - 10)\n );\n"])), function (props) {
return props.theme.colors[props.fill].color;
});
var NotificationBarContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n display: flex;\n gap: 15px;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n padding: 10px 15px;\n width: 100%;\n background-color: ", ";\n border-radius: 12px;\n box-shadow: ", ";\n"])), function (props) {
return props.theme.colors[props.color].color;
}, function (props) {
return prop.scolor ? '0 2px 4px rgba(0, 0, 0, 0.1)' : 'none';
});
var NotificationBar = function NotificationBar(_ref) {
var _ref$background = _ref.background,
background = _ref$background === void 0 ? 'dark' : _ref$background,
_ref$fill = _ref.fill,
fill = _ref$fill === void 0 ? 'light' : _ref$fill,
timeElapsed = _ref.timeElapsed,
message = _ref.message,
user = _ref.user,
props = _objectWithoutPropertiesLoose(_ref, _excluded);
return /*#__PURE__*/_react["default"].createElement(NotificationBarContainer, _extends({
background: background
}, props), /*#__PURE__*/_react["default"].createElement(ProfileContainer, {
background: background,
fill: fill
}, user.image ? /*#__PURE__*/_react["default"].createElement(RoundImage, {
src: user.image,
alt: user.name
}) : /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
name: "profile",
size: "36px",
background: background,
fill: fill
})), /*#__PURE__*/_react["default"].createElement(BodyContainer, null, /*#__PURE__*/_react["default"].createElement(MessageContainer, null, /*#__PURE__*/_react["default"].createElement(MessageText, {
fill: fill
}, message), /*#__PURE__*/_react["default"].createElement(TimeElapsed, {
fill: fill
}, timeElapsed))));
};
NotificationBar.propTypes = process.env.NODE_ENV !== "production" ? {
user: _propTypes["default"].shape({
name: _propTypes["default"].string.isRequired,
image: _propTypes["default"].string
}),
timeElapsed: _propTypes["default"].string.isRequired,
message: _propTypes["default"].string.isRequired,
background: _propTypes["default"].oneOf(['primary', 'dark', 'light', 'secondary', 'danger', 'success', 'warning']),
fill: _propTypes["default"].oneOf(['primary', 'dark', 'light', 'secondary', 'danger', 'success', 'warning'])
} : {};
var _default = exports["default"] = NotificationBar;
module.exports = exports.default;