UNPKG

sharyn

Version:

Combines all the other packages under one.

100 lines (82 loc) 3.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectWithoutProperties")); var _react = _interopRequireDefault(require("react")); var _withState = _interopRequireDefault(require("recompose/withState")); var _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar")); var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")); var _Close = _interopRequireDefault(require("@material-ui/icons/Close")); var _propTypes = _interopRequireDefault(require("prop-types")); /* eslint-disable import/no-extraneous-dependencies */ var handleClose = function handleClose(updateIsOpen, keepClickAway, reason) { if (keepClickAway || reason !== 'clickaway') { updateIsOpen(false); } }; var handleExited = function handleExited(updateIsOpen, handleDismissNotification) { handleDismissNotification(); updateIsOpen(true); }; var NotificationsJSX = function NotificationsJSX(_ref) { var _ref$notifications = _ref.notifications, notifications = _ref$notifications === void 0 ? [] : _ref$notifications, handleDismissNotification = _ref.handleDismissNotification, isOpen = _ref.isOpen, updateIsOpen = _ref.updateIsOpen; var currentSnackbar = notifications[0]; if (currentSnackbar) { var mainAction = currentSnackbar.mainAction, _currentSnackbar$dism = currentSnackbar.dismissable, dismissable = _currentSnackbar$dism === void 0 ? true : _currentSnackbar$dism, keepClickAway = currentSnackbar.keepClickAway, muiProps = (0, _objectWithoutProperties2.default)(currentSnackbar, ["mainAction", "dismissable", "keepClickAway"]); var actions = mainAction ? [// eslint-disable-next-line _react.default.createElement("div", { key: "main", role: "button", onClick: function onClick() { return handleClose(updateIsOpen, keepClickAway); } }, mainAction)] : []; if (dismissable) { actions.push(_react.default.createElement(_IconButton.default, { key: "dismiss", color: "inherit", onClick: function onClick() { return handleClose(updateIsOpen, keepClickAway); } }, _react.default.createElement(_Close.default, null))); } return _react.default.createElement(_Snackbar.default, (0, _extends2.default)({ anchorOrigin: { vertical: 'bottom', horizontal: 'left' }, open: isOpen, onClose: function onClose(e, reason) { return handleClose(updateIsOpen, keepClickAway, reason); }, onExited: function onExited() { return handleExited(updateIsOpen, handleDismissNotification); }, autoHideDuration: 6000, action: actions }, muiProps)); } return null; }; NotificationsJSX.propTypes = { notifications: _propTypes.default.arrayOf(_propTypes.default.object.isRequired), handleDismissNotification: _propTypes.default.func.isRequired, currentSnackbar: _propTypes.default.object, isOpen: _propTypes.default.bool.isRequired, updateIsOpen: _propTypes.default.func.isRequired }; var Notifications = (0, _withState.default)('isOpen', 'updateIsOpen', true)(NotificationsJSX); var _default = Notifications; exports.default = _default;