UNPKG

react-cm-ui

Version:
111 lines (90 loc) 5.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _lodash = require("lodash"); var _classnames = _interopRequireDefault(require("classnames")); var _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar")); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _constants = require("../../global/constants"); var _makeStyles = _interopRequireDefault(require("../../styles/makeStyles")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } var propTypes = { /** * Override or extend the styles applied to the component. * See [CSS API](https://material-ui.com/api/snackbar/#css) for more details. */ classes: _propTypes["default"].shape({}), /** * Assign additional class names to Snackbar. */ className: _propTypes["default"].string, /** * Props applied to the [`SnackbarContent`](/api/snackbar-content/) element. */ ContentProps: _propTypes["default"].shape({ classes: _propTypes["default"].shape({}) }) }; var defaultProps = { classes: undefined, className: undefined, ContentProps: undefined }; var useStyles = (0, _makeStyles["default"])(function (_ref) { var palette = _ref.palette, shape = _ref.shape, spacing = _ref.spacing, typography = _ref.typography; return { snackBarContentRoot: { backgroundColor: palette.hexToRGBA(palette.grey[600], 0.7), borderRadius: shape.borderRadius, fontSize: typography.pxToRem(16), minWidth: 'auto', padding: [[spacing(1.185), spacing(1)]] }, snackBarContentMessageRoot: { alignItems: 'center', display: 'flex', justifyContent: 'flex-start', padding: 0 } }; }); /** * Snackbars inform users of a process that an app has performed or will perform. * They appear temporarily, towards the bottom of the screen. They shouldn’t interrupt the * user experience, and they don’t require user input to disappear. */ function Snackbar(props) { var className = props.className, classes = props.classes, ContentProps = props.ContentProps, otherProps = _objectWithoutProperties(props, ["className", "classes", "ContentProps"]); var contentPropsClasses = useStyles(ContentProps); var rootClasses = (0, _classnames["default"])(_constants.UI_CLASS_NAME, _constants.BEM_SNACKBAR, className); return /*#__PURE__*/_react["default"].createElement(_Snackbar["default"] // eslint-disable-next-line react/jsx-props-no-spreading , _extends({}, otherProps, { classes: classes, className: rootClasses, ContentProps: _objectSpread(_objectSpread({}, ContentProps), {}, { classes: _objectSpread({ root: contentPropsClasses.snackBarContentRoot, message: contentPropsClasses.snackBarContentMessageRoot }, (0, _lodash.get)(ContentProps, 'contentPropsClasses')) }) })); } Snackbar.propTypes = propTypes; Snackbar.defaultProps = defaultProps; var _default = Snackbar; exports["default"] = _default;