rsuite 5.44.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.
- package/Button/styles/index.less +1 -1
- package/CHANGELOG.md +12 -0
- package/Drawer/styles/index.less +1 -1
- package/Modal/styles/index.less +24 -2
- package/cjs/Drawer/Drawer.d.ts +2 -0
- package/cjs/Drawer/Drawer.js +16 -5
- package/cjs/Drawer/DrawerContext.d.ts +9 -0
- package/cjs/Drawer/DrawerContext.js +10 -0
- package/cjs/FormControl/FormControl.js +1 -1
- package/cjs/Modal/Modal.d.ts +2 -4
- package/cjs/Modal/Modal.js +24 -13
- package/cjs/Modal/ModalBody.js +14 -8
- package/cjs/Modal/ModalContext.d.ts +1 -3
- package/cjs/Modal/ModalHeader.js +9 -6
- package/cjs/Modal/index.d.ts +1 -0
- package/cjs/Modal/utils.d.ts +4 -1
- package/cjs/Modal/utils.js +9 -4
- package/dist/rsuite-no-reset-rtl.css +33 -4
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +33 -4
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +33 -4
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +33 -4
- package/dist/rsuite.js +18 -7
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Drawer/Drawer.d.ts +2 -0
- package/esm/Drawer/Drawer.js +15 -5
- package/esm/Drawer/DrawerContext.d.ts +9 -0
- package/esm/Drawer/DrawerContext.js +4 -0
- package/esm/FormControl/FormControl.js +1 -1
- package/esm/Modal/Modal.d.ts +2 -4
- package/esm/Modal/Modal.js +25 -14
- package/esm/Modal/ModalBody.js +14 -8
- package/esm/Modal/ModalContext.d.ts +1 -3
- package/esm/Modal/ModalHeader.js +9 -6
- package/esm/Modal/index.d.ts +1 -0
- package/esm/Modal/utils.d.ts +4 -1
- package/esm/Modal/utils.js +9 -4
- package/package.json +2 -2
package/esm/Drawer/Drawer.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
|
|
|
4
4
|
export interface DrawerProps extends ModalProps {
|
|
5
5
|
/** The placement of Drawer */
|
|
6
6
|
placement?: TypeAttributes.Placement4;
|
|
7
|
+
/** Custom close button */
|
|
8
|
+
closeButton?: React.ReactNode | boolean;
|
|
7
9
|
}
|
|
8
10
|
declare const DrawerBody: RsRefForwardingComponent<'div', ModalBodyProps>;
|
|
9
11
|
declare const DrawerHeader: RsRefForwardingComponent<'div', ModalHeaderProps>;
|
package/esm/Drawer/Drawer.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
-
import React from 'react';
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import Slide from '../Animation/Slide';
|
|
7
7
|
import Modal from '../Modal';
|
|
8
8
|
import { useClassNames } from '../utils';
|
|
9
9
|
import deprecateComponent from '../utils/deprecateComponent';
|
|
10
|
+
import DrawerContext from './DrawerContext';
|
|
10
11
|
var DrawerBody = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
12
|
return /*#__PURE__*/React.createElement(Modal.Body, _extends({
|
|
12
13
|
classPrefix: "drawer-body"
|
|
@@ -50,7 +51,9 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
50
51
|
classPrefix = _props$classPrefix === void 0 ? 'drawer' : _props$classPrefix,
|
|
51
52
|
_props$animation = props.animation,
|
|
52
53
|
animation = _props$animation === void 0 ? Slide : _props$animation,
|
|
53
|
-
|
|
54
|
+
_props$closeButton = props.closeButton,
|
|
55
|
+
closeButton = _props$closeButton === void 0 ? true : _props$closeButton,
|
|
56
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "placement", "classPrefix", "animation", "closeButton"]);
|
|
54
57
|
var _useClassNames = useClassNames(classPrefix),
|
|
55
58
|
merge = _useClassNames.merge,
|
|
56
59
|
prefix = _useClassNames.prefix;
|
|
@@ -58,14 +61,21 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
58
61
|
var animationProps = {
|
|
59
62
|
placement: placement
|
|
60
63
|
};
|
|
61
|
-
|
|
64
|
+
var contextValue = useMemo(function () {
|
|
65
|
+
return {
|
|
66
|
+
closeButton: closeButton,
|
|
67
|
+
isDrawer: true
|
|
68
|
+
};
|
|
69
|
+
}, [closeButton]);
|
|
70
|
+
return /*#__PURE__*/React.createElement(DrawerContext.Provider, {
|
|
71
|
+
value: contextValue
|
|
72
|
+
}, /*#__PURE__*/React.createElement(Modal, _extends({}, rest, {
|
|
62
73
|
ref: ref,
|
|
63
|
-
drawer: true,
|
|
64
74
|
classPrefix: classPrefix,
|
|
65
75
|
className: classes,
|
|
66
76
|
animation: animation,
|
|
67
77
|
animationProps: animationProps
|
|
68
|
-
}));
|
|
78
|
+
})));
|
|
69
79
|
});
|
|
70
80
|
DrawerBody.displayName = 'DrawerBody';
|
|
71
81
|
DrawerHeader.displayName = 'DrawerHeader';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DrawerContextProps {
|
|
3
|
+
/** Custom close button */
|
|
4
|
+
closeButton?: React.ReactNode | boolean;
|
|
5
|
+
/** Render Modal as Drawer */
|
|
6
|
+
isDrawer: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const DrawerContext: React.Context<DrawerContextProps | null>;
|
|
9
|
+
export default DrawerContext;
|
|
@@ -130,7 +130,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
130
130
|
if (AccepterComponent === Toggle) {
|
|
131
131
|
valueKey = 'checked';
|
|
132
132
|
}
|
|
133
|
-
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val
|
|
133
|
+
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val === undefined ? defaultValue : val, _accepterProps);
|
|
134
134
|
return /*#__PURE__*/React.createElement(Component, {
|
|
135
135
|
className: classes,
|
|
136
136
|
ref: ref
|
package/esm/Modal/Modal.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import ModalBody from './ModalBody';
|
|
|
5
5
|
import ModalHeader from './ModalHeader';
|
|
6
6
|
import ModalTitle from './ModalTitle';
|
|
7
7
|
import ModalFooter from './ModalFooter';
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import { ModalSize } from './utils';
|
|
9
|
+
import { RsRefForwardingComponent } from '../@types/common';
|
|
10
10
|
export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
|
|
11
11
|
/** A modal can have different sizes */
|
|
12
12
|
size?: ModalSize;
|
|
@@ -27,8 +27,6 @@ export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HT
|
|
|
27
27
|
dialogAs?: React.ElementType;
|
|
28
28
|
/** Automatically sets the height when the body content is too long. */
|
|
29
29
|
overflow?: boolean;
|
|
30
|
-
/** Render Modal as Drawer */
|
|
31
|
-
drawer?: boolean;
|
|
32
30
|
}
|
|
33
31
|
interface ModalComponent extends RsRefForwardingComponent<'div', ModalProps> {
|
|
34
32
|
Body: typeof ModalBody;
|
package/esm/Modal/Modal.js
CHANGED
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
5
|
var _templateObject, _templateObject2;
|
|
6
|
-
import React, { useRef, useMemo, useState, useCallback } from 'react';
|
|
6
|
+
import React, { useRef, useMemo, useState, useCallback, useContext } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import pick from 'lodash/pick';
|
|
9
9
|
import on from 'dom-lib/on';
|
|
@@ -20,8 +20,10 @@ import ModalFooter from './ModalFooter';
|
|
|
20
20
|
import { useBodyStyles } from './utils';
|
|
21
21
|
import useUniqueId from '../utils/useUniqueId';
|
|
22
22
|
import deprecatePropType from '../utils/deprecatePropType';
|
|
23
|
+
import DrawerContext from '../Drawer/DrawerContext';
|
|
23
24
|
var modalSizes = ['xs', 'sm', 'md', 'lg', 'full'];
|
|
24
25
|
var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
26
|
+
var _prefix;
|
|
25
27
|
var className = props.className,
|
|
26
28
|
children = props.children,
|
|
27
29
|
_props$classPrefix = props.classPrefix,
|
|
@@ -44,8 +46,6 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
44
46
|
animationTimeout = _props$animationTimeo === void 0 ? 300 : _props$animationTimeo,
|
|
45
47
|
_props$overflow = props.overflow,
|
|
46
48
|
overflow = _props$overflow === void 0 ? true : _props$overflow,
|
|
47
|
-
_props$drawer = props.drawer,
|
|
48
|
-
drawer = _props$drawer === void 0 ? false : _props$drawer,
|
|
49
49
|
onClose = props.onClose,
|
|
50
50
|
onEntered = props.onEntered,
|
|
51
51
|
onEntering = props.onEntering,
|
|
@@ -55,7 +55,7 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
55
55
|
idProp = props.id,
|
|
56
56
|
ariaLabelledby = props['aria-labelledby'],
|
|
57
57
|
ariaDescribedby = props['aria-describedby'],
|
|
58
|
-
rest = _objectWithoutPropertiesLoose(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "
|
|
58
|
+
rest = _objectWithoutPropertiesLoose(props, ["className", "children", "classPrefix", "dialogClassName", "backdropClassName", "backdrop", "dialogStyle", "animation", "open", "size", "full", "dialogAs", "animationProps", "animationTimeout", "overflow", "onClose", "onEntered", "onEntering", "onExited", "role", "id", "aria-labelledby", "aria-describedby"]);
|
|
59
59
|
var inClass = {
|
|
60
60
|
in: open && !animation
|
|
61
61
|
};
|
|
@@ -65,17 +65,21 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
65
65
|
var _useState = useState(false),
|
|
66
66
|
shake = _useState[0],
|
|
67
67
|
setShake = _useState[1];
|
|
68
|
-
var classes = merge(className, prefix(
|
|
68
|
+
var classes = merge(className, prefix((_prefix = {
|
|
69
69
|
full: full
|
|
70
|
-
}));
|
|
70
|
+
}, _prefix[size] = modalSizes.includes(size), _prefix)));
|
|
71
71
|
var dialogRef = useRef(null);
|
|
72
72
|
var transitionEndListener = useRef();
|
|
73
73
|
|
|
74
|
-
//
|
|
74
|
+
// Render Modal as Drawer
|
|
75
|
+
var _ref = useContext(DrawerContext) || {},
|
|
76
|
+
_ref$isDrawer = _ref.isDrawer,
|
|
77
|
+
isDrawer = _ref$isDrawer === void 0 ? false : _ref$isDrawer; // The style of the Modal body will be updated with the size of the window or container.
|
|
75
78
|
var _useBodyStyles = useBodyStyles(dialogRef, {
|
|
76
79
|
overflow: overflow,
|
|
77
|
-
drawer:
|
|
78
|
-
prefix: prefix
|
|
80
|
+
drawer: isDrawer,
|
|
81
|
+
prefix: prefix,
|
|
82
|
+
size: size
|
|
79
83
|
}),
|
|
80
84
|
bodyStyles = _useBodyStyles[0],
|
|
81
85
|
onChangeBodyStyles = _useBodyStyles[1],
|
|
@@ -87,10 +91,9 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
87
91
|
onModalClose: onClose,
|
|
88
92
|
getBodyStyles: function getBodyStyles() {
|
|
89
93
|
return bodyStyles;
|
|
90
|
-
}
|
|
91
|
-
isDrawer: drawer
|
|
94
|
+
}
|
|
92
95
|
};
|
|
93
|
-
}, [dialogId, onClose, bodyStyles
|
|
96
|
+
}, [dialogId, onClose, bodyStyles]);
|
|
94
97
|
var handleExited = useCallback(function (node) {
|
|
95
98
|
var _transitionEndListene;
|
|
96
99
|
onExited === null || onExited === void 0 ? void 0 : onExited(node);
|
|
@@ -144,6 +147,12 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
144
147
|
var _transitionEndListene2;
|
|
145
148
|
(_transitionEndListene2 = transitionEndListener.current) === null || _transitionEndListene2 === void 0 ? void 0 : _transitionEndListene2.off();
|
|
146
149
|
});
|
|
150
|
+
var sizeKey = 'width';
|
|
151
|
+
if (isDrawer) {
|
|
152
|
+
var _ref2 = animationProps || {},
|
|
153
|
+
placement = _ref2.placement; // The width or height of the drawer depends on the placement.
|
|
154
|
+
sizeKey = placement === 'top' || placement === 'bottom' ? 'height' : 'width';
|
|
155
|
+
}
|
|
147
156
|
return /*#__PURE__*/React.createElement(ModalContext.Provider, {
|
|
148
157
|
value: modalContextValue
|
|
149
158
|
}, /*#__PURE__*/React.createElement(BaseModal, _extends({}, rest, {
|
|
@@ -167,13 +176,15 @@ var Modal = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
167
176
|
onClick: backdrop ? handleBackdropClick : undefined,
|
|
168
177
|
onMouseDown: handleMouseDown
|
|
169
178
|
}), function (transitionProps, transitionRef) {
|
|
179
|
+
var _ref3;
|
|
170
180
|
var transitionClassName = transitionProps.className,
|
|
171
181
|
transitionRest = _objectWithoutPropertiesLoose(transitionProps, ["className"]);
|
|
172
182
|
return /*#__PURE__*/React.createElement(Dialog, _extends({
|
|
173
183
|
role: role,
|
|
174
184
|
id: dialogId,
|
|
175
185
|
"aria-labelledby": ariaLabelledby !== null && ariaLabelledby !== void 0 ? ariaLabelledby : dialogId + "-title",
|
|
176
|
-
"aria-describedby": ariaDescribedby
|
|
186
|
+
"aria-describedby": ariaDescribedby,
|
|
187
|
+
style: (_ref3 = {}, _ref3[sizeKey] = modalSizes.includes(size) ? undefined : size, _ref3)
|
|
177
188
|
}, transitionRest, pick(rest, Object.keys(modalDialogPropTypes)), {
|
|
178
189
|
ref: mergeRefs(dialogRef, transitionRef),
|
|
179
190
|
classPrefix: classPrefix,
|
|
@@ -196,7 +207,7 @@ Modal.propTypes = _extends({}, modalPropTypes, {
|
|
|
196
207
|
animationTimeout: PropTypes.number,
|
|
197
208
|
classPrefix: PropTypes.string,
|
|
198
209
|
dialogClassName: PropTypes.string,
|
|
199
|
-
size: PropTypes.oneOf(modalSizes),
|
|
210
|
+
size: PropTypes.oneOfType([PropTypes.oneOf(modalSizes), PropTypes.number, PropTypes.string]),
|
|
200
211
|
dialogStyle: PropTypes.object,
|
|
201
212
|
dialogAs: PropTypes.elementType,
|
|
202
213
|
full: deprecatePropType(PropTypes.bool, 'Use size="full" instead.'),
|
package/esm/Modal/ModalBody.js
CHANGED
|
@@ -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
|
-
}),
|
|
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>;
|
package/esm/Modal/ModalHeader.js
CHANGED
|
@@ -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
|
|
28
|
-
var
|
|
29
|
-
|
|
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,
|
|
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,
|
package/esm/Modal/index.d.ts
CHANGED
|
@@ -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;
|
package/esm/Modal/utils.d.ts
CHANGED
|
@@ -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];
|
package/esm/Modal/utils.js
CHANGED
|
@@ -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 (
|
|
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 :
|
|
72
|
+
return [overflow ? bodyStyles : null, onChangeBodyStyles, onDestroyEvents];
|
|
68
73
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rsuite",
|
|
3
|
-
"version": "5.
|
|
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.
|
|
41
|
+
"rsuite-table": "^5.17.0",
|
|
42
42
|
"schema-typed": "^2.1.3"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|