Dashboard sipadu mbip
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

Toast.js 3.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. exports.__esModule = true;
  5. exports.default = void 0;
  6. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  7. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  8. var _react = _interopRequireWildcard(require("react"));
  9. var _classnames = _interopRequireDefault(require("classnames"));
  10. var _useTimeout = _interopRequireDefault(require("@restart/hooks/useTimeout"));
  11. var _Fade = _interopRequireDefault(require("./Fade"));
  12. var _ToastHeader = _interopRequireDefault(require("./ToastHeader"));
  13. var _ToastBody = _interopRequireDefault(require("./ToastBody"));
  14. var _ThemeProvider = require("./ThemeProvider");
  15. var _ToastContext = _interopRequireDefault(require("./ToastContext"));
  16. var defaultProps = {
  17. animation: true,
  18. autohide: false,
  19. delay: 3000,
  20. show: true,
  21. transition: _Fade.default
  22. };
  23. var Toast = _react.default.forwardRef(function (_ref, ref) {
  24. var bsPrefix = _ref.bsPrefix,
  25. className = _ref.className,
  26. children = _ref.children,
  27. Transition = _ref.transition,
  28. show = _ref.show,
  29. animation = _ref.animation,
  30. delay = _ref.delay,
  31. autohide = _ref.autohide,
  32. onClose = _ref.onClose,
  33. props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["bsPrefix", "className", "children", "transition", "show", "animation", "delay", "autohide", "onClose"]);
  34. bsPrefix = (0, _ThemeProvider.useBootstrapPrefix)('toast');
  35. var delayRef = (0, _react.useRef)(delay);
  36. var onCloseRef = (0, _react.useRef)(onClose);
  37. (0, _react.useEffect)(function () {
  38. // We use refs for these, because we don't want to restart the autohide
  39. // timer in case these values change.
  40. delayRef.current = delay;
  41. onCloseRef.current = onClose;
  42. }, [delay, onClose]);
  43. var autohideTimeout = (0, _useTimeout.default)();
  44. var autohideFunc = (0, _react.useCallback)(function () {
  45. if (!(autohide && show)) {
  46. return;
  47. }
  48. onCloseRef.current();
  49. }, [autohide, show]);
  50. autohideTimeout.set(autohideFunc, delayRef.current);
  51. var useAnimation = (0, _react.useMemo)(function () {
  52. return Transition && animation;
  53. }, [Transition, animation]);
  54. var toast = _react.default.createElement("div", (0, _extends2.default)({}, props, {
  55. ref: ref,
  56. className: (0, _classnames.default)(bsPrefix, className, !useAnimation && show && 'show'),
  57. role: "alert",
  58. "aria-live": "assertive",
  59. "aria-atomic": "true"
  60. }), children);
  61. var toastContext = {
  62. onClose: onClose
  63. };
  64. return _react.default.createElement(_ToastContext.default.Provider, {
  65. value: toastContext
  66. }, useAnimation ? _react.default.createElement(Transition, {
  67. in: show
  68. }, toast) : toast);
  69. });
  70. Toast.defaultProps = defaultProps;
  71. Toast.displayName = 'Toast';
  72. Toast.Body = _ToastBody.default;
  73. Toast.Header = _ToastHeader.default;
  74. var _default = Toast;
  75. exports.default = _default;
  76. module.exports = exports["default"];