pouncejs
Version:
A collection of UI components from Panther labs
43 lines (32 loc) • 1.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = _interopRequireDefault(require("react"));
var _ControlledAlert = _interopRequireDefault(require("../utils/ControlledAlert"));
/**
* A Snackbar is a special version of Alert that gets shown as a response to a user's action in
* order to provide feedback about the outcome of his action
*/
var Snackbar = function Snackbar(_ref) {
var destroy = _ref.destroy,
_ref$duration = _ref.duration,
duration = _ref$duration === void 0 ? 6000 : _ref$duration,
rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["destroy", "duration"]);
var timeoutRef = _react.default.useRef();
_react.default.useEffect(function () {
timeoutRef.current = setTimeout(destroy, duration);
return function () {
return clearTimeout(timeoutRef.current);
};
}, [duration]);
return /*#__PURE__*/_react.default.createElement(_ControlledAlert.default, (0, _extends2.default)({}, rest, {
open: true,
onClose: destroy,
variantBackgroundStyle: "solid"
}));
};
var _default = Snackbar;
exports.default = _default;