rsuite 5.43.0 → 5.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/Button/styles/index.less +1 -1
  2. package/CHANGELOG.md +24 -0
  3. package/Drawer/styles/index.less +1 -1
  4. package/Modal/styles/index.less +24 -2
  5. package/Picker/styles/index.less +0 -4
  6. package/cjs/Cascader/Cascader.d.ts +2 -2
  7. package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
  8. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  9. package/cjs/CheckTreePicker/CheckTreePicker.js +2 -2
  10. package/cjs/DatePicker/DatePicker.d.ts +3 -1
  11. package/cjs/DatePicker/DatePicker.js +18 -5
  12. package/cjs/DatePicker/PredefinedRanges.d.ts +2 -2
  13. package/cjs/DatePicker/PredefinedRanges.js +8 -8
  14. package/cjs/DatePicker/Toolbar.js +4 -4
  15. package/cjs/DateRangePicker/DateRangePicker.d.ts +3 -1
  16. package/cjs/DateRangePicker/DateRangePicker.js +18 -5
  17. package/cjs/DateRangePicker/types.d.ts +2 -2
  18. package/cjs/Drawer/Drawer.d.ts +2 -0
  19. package/cjs/Drawer/Drawer.js +16 -5
  20. package/cjs/Drawer/DrawerContext.d.ts +9 -0
  21. package/cjs/Drawer/DrawerContext.js +10 -0
  22. package/cjs/FormControl/FormControl.js +1 -1
  23. package/cjs/InputPicker/InputPicker.d.ts +1 -1
  24. package/cjs/InputPicker/InputPicker.js +1 -1
  25. package/cjs/Modal/Modal.d.ts +2 -4
  26. package/cjs/Modal/Modal.js +24 -13
  27. package/cjs/Modal/ModalBody.js +14 -8
  28. package/cjs/Modal/ModalContext.d.ts +1 -3
  29. package/cjs/Modal/ModalHeader.js +9 -6
  30. package/cjs/Modal/index.d.ts +1 -0
  31. package/cjs/Modal/utils.d.ts +4 -1
  32. package/cjs/Modal/utils.js +9 -4
  33. package/cjs/MultiCascader/MultiCascader.d.ts +2 -2
  34. package/cjs/Picker/PickerToggle.d.ts +2 -0
  35. package/cjs/Picker/PickerToggle.js +10 -4
  36. package/cjs/Picker/utils.js +3 -2
  37. package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
  38. package/cjs/TreePicker/TreePicker.d.ts +1 -1
  39. package/cjs/toaster/useToaster.js +22 -19
  40. package/dist/rsuite-no-reset-rtl.css +33 -7
  41. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  42. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  43. package/dist/rsuite-no-reset.css +33 -7
  44. package/dist/rsuite-no-reset.min.css +1 -1
  45. package/dist/rsuite-no-reset.min.css.map +1 -1
  46. package/dist/rsuite-rtl.css +33 -7
  47. package/dist/rsuite-rtl.min.css +1 -1
  48. package/dist/rsuite-rtl.min.css.map +1 -1
  49. package/dist/rsuite.css +33 -7
  50. package/dist/rsuite.js +45 -23
  51. package/dist/rsuite.js.map +1 -1
  52. package/dist/rsuite.min.css +1 -1
  53. package/dist/rsuite.min.css.map +1 -1
  54. package/dist/rsuite.min.js +1 -1
  55. package/dist/rsuite.min.js.map +1 -1
  56. package/esm/Cascader/Cascader.d.ts +2 -2
  57. package/esm/CheckPicker/CheckPicker.d.ts +1 -1
  58. package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
  59. package/esm/CheckTreePicker/CheckTreePicker.js +2 -2
  60. package/esm/DatePicker/DatePicker.d.ts +3 -1
  61. package/esm/DatePicker/DatePicker.js +18 -5
  62. package/esm/DatePicker/PredefinedRanges.d.ts +2 -2
  63. package/esm/DatePicker/PredefinedRanges.js +8 -8
  64. package/esm/DatePicker/Toolbar.js +4 -4
  65. package/esm/DateRangePicker/DateRangePicker.d.ts +3 -1
  66. package/esm/DateRangePicker/DateRangePicker.js +18 -5
  67. package/esm/DateRangePicker/types.d.ts +2 -2
  68. package/esm/Drawer/Drawer.d.ts +2 -0
  69. package/esm/Drawer/Drawer.js +15 -5
  70. package/esm/Drawer/DrawerContext.d.ts +9 -0
  71. package/esm/Drawer/DrawerContext.js +4 -0
  72. package/esm/FormControl/FormControl.js +1 -1
  73. package/esm/InputPicker/InputPicker.d.ts +1 -1
  74. package/esm/InputPicker/InputPicker.js +1 -1
  75. package/esm/Modal/Modal.d.ts +2 -4
  76. package/esm/Modal/Modal.js +25 -14
  77. package/esm/Modal/ModalBody.js +14 -8
  78. package/esm/Modal/ModalContext.d.ts +1 -3
  79. package/esm/Modal/ModalHeader.js +9 -6
  80. package/esm/Modal/index.d.ts +1 -0
  81. package/esm/Modal/utils.d.ts +4 -1
  82. package/esm/Modal/utils.js +9 -4
  83. package/esm/MultiCascader/MultiCascader.d.ts +2 -2
  84. package/esm/Picker/PickerToggle.d.ts +2 -0
  85. package/esm/Picker/PickerToggle.js +10 -4
  86. package/esm/Picker/utils.js +3 -2
  87. package/esm/SelectPicker/SelectPicker.d.ts +1 -3
  88. package/esm/TreePicker/TreePicker.d.ts +1 -1
  89. package/esm/toaster/useToaster.js +22 -19
  90. package/package.json +2 -2
@@ -7,8 +7,9 @@ import { useClassNames } from '../utils';
7
7
  import { ModalContext } from './ModalContext';
8
8
  import IconButton from '../IconButton';
9
9
  import Close from '@rsuite/icons/Close';
10
+ import DrawerContext from '../Drawer/DrawerContext';
10
11
  var ModalBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
11
- var _context$getBodyStyle;
12
+ var _context$getBodyStyle, _useContext;
12
13
  var _props$as = props.as,
13
14
  Component = _props$as === void 0 ? 'div' : _props$as,
14
15
  _props$classPrefix = props.classPrefix,
@@ -24,17 +25,22 @@ var ModalBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
25
  var classes = merge(className, withClassPrefix());
25
26
  var context = useContext(ModalContext);
26
27
  var bodyStyles = context === null || context === void 0 ? void 0 : (_context$getBodyStyle = context.getBodyStyles) === null || _context$getBodyStyle === void 0 ? void 0 : _context$getBodyStyle.call(context);
28
+ var closeButton = (_useContext = useContext(DrawerContext)) === null || _useContext === void 0 ? void 0 : _useContext.closeButton;
29
+ var buttonElement = null;
30
+ if (closeButton) {
31
+ buttonElement = typeof closeButton === 'boolean' ? /*#__PURE__*/React.createElement(IconButton, {
32
+ icon: /*#__PURE__*/React.createElement(Close, null),
33
+ appearance: "subtle",
34
+ size: "sm",
35
+ className: prefix('close'),
36
+ onClick: context === null || context === void 0 ? void 0 : context.onModalClose
37
+ }) : closeButton;
38
+ }
27
39
  return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
28
40
  ref: ref,
29
41
  style: _extends({}, bodyStyles, style),
30
42
  className: classes
31
- }), (context === null || context === void 0 ? void 0 : context.isDrawer) && /*#__PURE__*/React.createElement(IconButton, {
32
- icon: /*#__PURE__*/React.createElement(Close, null),
33
- appearance: "subtle",
34
- size: "sm",
35
- className: prefix('close'),
36
- onClick: context === null || context === void 0 ? void 0 : context.onModalClose
37
- }), children);
43
+ }), buttonElement, children);
38
44
  });
39
45
  ModalBody.displayName = 'ModalBody';
40
46
  ModalBody.propTypes = {
@@ -5,8 +5,6 @@ export interface ModalContextProps {
5
5
  /** Pass the close event callback to the header close button. */
6
6
  onModalClose?: (event: React.MouseEvent<Element, MouseEvent>) => void;
7
7
  /** Pass the latest style to body. */
8
- getBodyStyles?: () => React.CSSProperties;
9
- /** Whether this Modal is a Drawer */
10
- isDrawer: boolean;
8
+ getBodyStyles?: () => React.CSSProperties | null;
11
9
  }
12
10
  export declare const ModalContext: React.Context<ModalContextProps | null>;
@@ -8,7 +8,9 @@ import { ModalContext } from './ModalContext';
8
8
  import CloseButton from '../CloseButton';
9
9
  import Close from '@rsuite/icons/Close';
10
10
  import IconButton from '../IconButton';
11
+ import DrawerContext from '../Drawer/DrawerContext';
11
12
  var ModalHeader = /*#__PURE__*/React.forwardRef(function (props, ref) {
13
+ var _useContext, _useContext2;
12
14
  var _props$as = props.as,
13
15
  Component = _props$as === void 0 ? 'div' : _props$as,
14
16
  _props$classPrefix = props.classPrefix,
@@ -24,16 +26,17 @@ var ModalHeader = /*#__PURE__*/React.forwardRef(function (props, ref) {
24
26
  withClassPrefix = _useClassNames.withClassPrefix,
25
27
  prefix = _useClassNames.prefix;
26
28
  var classes = merge(className, withClassPrefix());
27
- var context = useContext(ModalContext);
28
- var buttonElement = !(context !== null && context !== void 0 && context.isDrawer) ? /*#__PURE__*/React.createElement(CloseButton, {
29
- className: prefix('close'),
30
- onClick: createChainedFunction(onClose, context === null || context === void 0 ? void 0 : context.onModalClose)
31
- }) : /*#__PURE__*/React.createElement(IconButton, {
29
+ var onModalClose = (_useContext = useContext(ModalContext)) === null || _useContext === void 0 ? void 0 : _useContext.onModalClose;
30
+ var isDrawer = (_useContext2 = useContext(DrawerContext)) === null || _useContext2 === void 0 ? void 0 : _useContext2.isDrawer;
31
+ var buttonElement = isDrawer ? /*#__PURE__*/React.createElement(IconButton, {
32
32
  icon: /*#__PURE__*/React.createElement(Close, null),
33
33
  appearance: "subtle",
34
34
  size: "sm",
35
35
  className: prefix('close'),
36
- onClick: createChainedFunction(onClose, context === null || context === void 0 ? void 0 : context.onModalClose)
36
+ onClick: createChainedFunction(onClose, onModalClose)
37
+ }) : /*#__PURE__*/React.createElement(CloseButton, {
38
+ className: prefix('close'),
39
+ onClick: createChainedFunction(onClose, onModalClose)
37
40
  });
38
41
  return /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
39
42
  ref: ref,
@@ -5,4 +5,5 @@ export type { ModalDialogProps } from './ModalDialog';
5
5
  export type { ModalFooterProps } from './ModalFooter';
6
6
  export type { ModalHeaderProps } from './ModalHeader';
7
7
  export type { ModalTitleProps } from './ModalTitle';
8
+ export type { ModalSize } from './utils';
8
9
  export default Modal;
@@ -1,6 +1,9 @@
1
1
  /// <reference types="react" />
2
+ import { TypeAttributes } from '../@types/common';
3
+ export declare type ModalSize = TypeAttributes.Size | 'full' | number | string;
2
4
  export declare const useBodyStyles: (ref: React.RefObject<HTMLElement>, options: {
3
5
  overflow: boolean;
4
6
  drawer: boolean;
7
+ size?: ModalSize | undefined;
5
8
  prefix: (...classes: any) => string;
6
- }) => [import("react").CSSProperties, (entering?: boolean) => void, () => void];
9
+ }) => [import("react").CSSProperties | null, (entering?: boolean) => void, () => void];
@@ -9,7 +9,8 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
9
9
  setBodyStyles = _useState[1];
10
10
  var overflow = options.overflow,
11
11
  drawer = options.drawer,
12
- prefix = options.prefix;
12
+ prefix = options.prefix,
13
+ size = options.size;
13
14
  var windowResizeListener = useRef();
14
15
  var contentElement = useRef(null);
15
16
  var contentElementResizeObserver = useRef();
@@ -46,7 +47,11 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
46
47
  contentElementResizeObserver.current = null;
47
48
  }, []);
48
49
  var onChangeBodyStyles = useCallback(function (entering) {
49
- if (overflow && !drawer && ref.current) {
50
+ if (drawer || size === 'full') {
51
+ setBodyStyles(null);
52
+ return;
53
+ }
54
+ if (overflow && ref.current) {
50
55
  updateBodyStyles(undefined, entering);
51
56
  contentElement.current = ref.current.querySelector("." + prefix('content'));
52
57
  if (!windowResizeListener.current) {
@@ -59,10 +64,10 @@ export var useBodyStyles = function useBodyStyles(ref, options) {
59
64
  contentElementResizeObserver.current.observe(contentElement.current);
60
65
  }
61
66
  }
62
- }, [drawer, overflow, prefix, ref, updateBodyStyles]);
67
+ }, [drawer, overflow, prefix, ref, size, updateBodyStyles]);
63
68
  useEffect(function () {
64
69
  return onDestroyEvents;
65
70
  // eslint-disable-next-line react-hooks/exhaustive-deps
66
71
  }, []);
67
- return [overflow ? bodyStyles : {}, onChangeBodyStyles, onDestroyEvents];
72
+ return [overflow ? bodyStyles : null, onChangeBodyStyles, onDestroyEvents];
68
73
  };
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
- import { PickerComponent } from '../Picker';
3
+ import { PickerComponent, PickerToggleProps } from '../Picker';
4
4
  import { FormControlPickerProps, ItemDataType } from '../@types/common';
5
5
  export declare type ValueType = (number | string)[];
6
- export interface MultiCascaderProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType> {
6
+ export interface MultiCascaderProps<T = ValueType> extends FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'loading'> {
7
7
  cascade?: boolean;
8
8
  /** A picker that can be counted */
9
9
  countable?: boolean;
@@ -15,6 +15,7 @@ export interface PickerToggleProps extends ToggleButtonProps {
15
15
  readOnly?: boolean;
16
16
  plaintext?: boolean;
17
17
  tabIndex?: number;
18
+ /** Whether to display an loading indicator on toggle button */
18
19
  loading?: boolean;
19
20
  editable?: boolean;
20
21
  name?: string;
@@ -22,6 +23,7 @@ export interface PickerToggleProps extends ToggleButtonProps {
22
23
  inputMask?: (string | RegExp)[];
23
24
  onInputChange?: (value: string, event: React.ChangeEvent) => void;
24
25
  onInputPressEnter?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
26
+ onInputBackspace?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
25
27
  onInputBlur?: (event: React.FocusEvent<HTMLElement>) => void;
26
28
  onInputFocus?: (event: React.FocusEvent<HTMLElement>) => void;
27
29
  placement?: TypeAttributes.Placement;
@@ -44,6 +44,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
44
44
  inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,
45
45
  onInputChange = props.onInputChange,
46
46
  onInputPressEnter = props.onInputPressEnter,
47
+ onInputBackspace = props.onInputBackspace,
47
48
  onInputBlur = props.onInputBlur,
48
49
  onInputFocus = props.onInputFocus,
49
50
  onClean = props.onClean,
@@ -56,7 +57,7 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
56
57
  caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
57
58
  label = props.label,
58
59
  name = props.name,
59
- rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label", "name"]);
60
+ rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "editable", "loading", "cleanable", "tabIndex", "id", "value", "inputPlaceholder", "inputValue", "inputMask", "onInputChange", "onInputPressEnter", "onInputBackspace", "onInputBlur", "onInputFocus", "onClean", "onFocus", "onBlur", "placement", "caretComponent", "caretAs", "label", "name"]);
60
61
  var inputRef = useRef(null);
61
62
  var comboboxRef = useRef(null);
62
63
  var _useState = useState(false),
@@ -130,10 +131,15 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
130
131
  onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);
131
132
  }, [onInputChange]);
132
133
  var handleInputKeyDown = useCallback(function (event) {
133
- if (editable && event.key === KEY_VALUES.ENTER) {
134
- onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);
134
+ if (editable) {
135
+ if (event.key === KEY_VALUES.ENTER) {
136
+ onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);
137
+ }
138
+ if (event.key === KEY_VALUES.BACKSPACE) {
139
+ onInputBackspace === null || onInputBackspace === void 0 ? void 0 : onInputBackspace(event);
140
+ }
135
141
  }
136
- }, [onInputPressEnter, editable]);
142
+ }, [editable, onInputPressEnter, onInputBackspace]);
137
143
  var renderInput = useCallback(function (ref, props) {
138
144
  return /*#__PURE__*/React.createElement("input", _extends({
139
145
  ref: mergeRefs(inputRef, ref),
@@ -354,6 +354,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
354
354
  active = props.active,
355
355
  readOnly = props.readOnly,
356
356
  disabled = props.disabled,
357
+ loading = props.loading,
357
358
  onExit = props.onExit,
358
359
  onOpen = props.onOpen,
359
360
  onClose = props.onClose,
@@ -380,7 +381,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
380
381
  }, [active, handleOpen, handleClose]);
381
382
  var onToggle = useCallback(function (event) {
382
383
  // Keyboard events should not be processed when readOnly and disabled are set.
383
- if (readOnly || disabled) {
384
+ if (readOnly || disabled || loading) {
384
385
  return;
385
386
  }
386
387
  if (event.target === (targetRef === null || targetRef === void 0 ? void 0 : targetRef.current)) {
@@ -426,7 +427,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
426
427
 
427
428
  // Native event callback
428
429
  onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
429
- }, [readOnly, disabled, targetRef, overlayRef, onKeyDown, toggle, handleToggleDropdown, onExit, onMenuKeyDown, searchInputRef, onMenuPressEnter, onMenuPressBackspace, handleClose]);
430
+ }, [readOnly, disabled, loading, targetRef, overlayRef, onKeyDown, toggle, handleToggleDropdown, onExit, onMenuKeyDown, searchInputRef, onMenuPressEnter, onMenuPressBackspace, handleClose]);
430
431
  return onToggle;
431
432
  };
432
433
  /**
@@ -6,8 +6,6 @@ import { FormControlPickerProps, ItemDataType } from '../@types/common';
6
6
  export interface SelectProps<T> {
7
7
  /** Set group condition key in data */
8
8
  groupBy?: string;
9
- /** Whether to display an loading indicator on toggle button */
10
- loading?: boolean;
11
9
  /** Whether dispaly search input box */
12
10
  searchable?: boolean;
13
11
  /** Whether using virtualized list */
@@ -41,7 +39,7 @@ export interface MultipleSelectProps<T> extends Omit<SelectProps<T>, 'renderValu
41
39
  /** Custom render selected items */
42
40
  renderValue?: (value: T[], item: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
43
41
  }
44
- export interface SelectPickerProps<T> extends Omit<FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, 'value' | 'defaultValue' | 'onChange'>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'label'> {
42
+ export interface SelectPickerProps<T> extends Omit<FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, 'value' | 'defaultValue' | 'onChange'>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'label' | 'loading'> {
45
43
  /** Initial value */
46
44
  defaultValue?: T;
47
45
  /** Current value of the component. Creates a controlled component */
@@ -3,7 +3,7 @@ import { PickerLocale } from '../locales';
3
3
  import { PickerComponent, PickerToggleProps } from '../Picker';
4
4
  import { TreeDragProps, TreeBaseProps } from '../Tree/Tree';
5
5
  import { FormControlPickerProps, ItemDataType } from '../@types/common';
6
- export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
6
+ export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
7
7
  /** The height of Dropdown */
8
8
  height?: number;
9
9
  /** Tree node cascade */
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ import { useMemo } from 'react';
2
3
  import toaster from './toaster';
3
4
  import { useCustom } from '../utils';
4
5
 
@@ -9,24 +10,26 @@ import { useCustom } from '../utils';
9
10
  var useToaster = function useToaster() {
10
11
  var _useCustom = useCustom(),
11
12
  toasters = _useCustom.toasters;
12
- return {
13
- push: function push(message, options) {
14
- var _toasters$current;
15
- var customToaster = toasters === null || toasters === void 0 ? void 0 : (_toasters$current = toasters.current) === null || _toasters$current === void 0 ? void 0 : _toasters$current.get((options === null || options === void 0 ? void 0 : options.placement) || 'topCenter');
16
- return customToaster ? customToaster.push(message, options) : toaster.push(message, options);
17
- },
18
- remove: function remove(key) {
19
- toasters ? Array.from(toasters.current).forEach(function (_ref) {
20
- var c = _ref[1];
21
- return c === null || c === void 0 ? void 0 : c.remove(key);
22
- }) : toaster.remove(key);
23
- },
24
- clear: function clear() {
25
- toasters ? Array.from(toasters.current).forEach(function (_ref2) {
26
- var c = _ref2[1];
27
- return c === null || c === void 0 ? void 0 : c.clear();
28
- }) : toaster.clear();
29
- }
30
- };
13
+ return useMemo(function () {
14
+ return {
15
+ push: function push(message, options) {
16
+ var _toasters$current;
17
+ var customToaster = toasters === null || toasters === void 0 ? void 0 : (_toasters$current = toasters.current) === null || _toasters$current === void 0 ? void 0 : _toasters$current.get((options === null || options === void 0 ? void 0 : options.placement) || 'topCenter');
18
+ return customToaster ? customToaster.push(message, options) : toaster.push(message, options);
19
+ },
20
+ remove: function remove(key) {
21
+ toasters ? Array.from(toasters.current).forEach(function (_ref) {
22
+ var c = _ref[1];
23
+ return c === null || c === void 0 ? void 0 : c.remove(key);
24
+ }) : toaster.remove(key);
25
+ },
26
+ clear: function clear() {
27
+ toasters ? Array.from(toasters.current).forEach(function (_ref2) {
28
+ var c = _ref2[1];
29
+ return c === null || c === void 0 ? void 0 : c.clear();
30
+ }) : toaster.clear();
31
+ }
32
+ };
33
+ }, [toasters]);
31
34
  };
32
35
  export default useToaster;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.43.0",
3
+ "version": "5.45.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -38,7 +38,7 @@
38
38
  "prop-types": "^15.8.1",
39
39
  "react-use-set": "^1.0.0",
40
40
  "react-window": "^1.8.8",
41
- "rsuite-table": "^5.15.0",
41
+ "rsuite-table": "^5.17.0",
42
42
  "schema-typed": "^2.1.3"
43
43
  },
44
44
  "peerDependencies": {