@alfalab/core-components-base-modal 3.1.0 → 3.2.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/CHANGELOG.md +12 -0
- package/dist/Component.d.ts +4 -0
- package/dist/Component.js +15 -14
- package/dist/cssm/Component.d.ts +4 -0
- package/dist/cssm/Component.js +14 -13
- package/dist/esm/Component.d.ts +4 -0
- package/dist/esm/Component.js +15 -14
- package/dist/esm/index.css +13 -13
- package/dist/index.css +13 -13
- package/dist/modern/Component.d.ts +4 -0
- package/dist/modern/Component.js +9 -8
- package/dist/modern/index.css +13 -13
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [3.2.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-base-modal@3.1.0...@alfalab/core-components-base-modal@3.2.0) (2022-03-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **base-modal:** add component ref for base modal ([#1008](https://github.com/alfa-laboratory/core-components/issues/1008)) ([fb13dbd](https://github.com/alfa-laboratory/core-components/commit/fb13dbdf6352b10b80a74fa87edfcb1f54b76d5a))
|
|
12
|
+
* Исправить импорты в сторях. ([#998](https://github.com/alfa-laboratory/core-components/issues/998)) ([e6a654a](https://github.com/alfa-laboratory/core-components/commit/e6a654a0599451c7d149484cb61d8067eed083b7))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
# [3.1.0](https://github.com/alfa-laboratory/core-components/compare/@alfalab/core-components-base-modal@3.0.2...@alfalab/core-components-base-modal@3.1.0) (2022-01-17)
|
|
7
19
|
|
|
8
20
|
|
package/dist/Component.d.ts
CHANGED
|
@@ -108,6 +108,10 @@ type BaseModalProps = {
|
|
|
108
108
|
* z-index компонента
|
|
109
109
|
*/
|
|
110
110
|
zIndex?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Реф, который должен быть установлен компонентной области
|
|
113
|
+
*/
|
|
114
|
+
componentRef?: MutableRefObject<HTMLDivElement | null>;
|
|
111
115
|
};
|
|
112
116
|
type BaseModalContext = {
|
|
113
117
|
hasFooter?: boolean;
|
package/dist/Component.js
CHANGED
|
@@ -48,7 +48,7 @@ var __assign = function () {
|
|
|
48
48
|
return __assign.apply(this, arguments);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
var styles = {"component":"base-
|
|
51
|
+
var styles = {"component":"base-modal__component_pvkw5","wrapper":"base-modal__wrapper_pvkw5","content":"base-modal__content_pvkw5","hidden":"base-modal__hidden_pvkw5","backdrop":"base-modal__backdrop_pvkw5","appear":"base-modal__appear_pvkw5","enter":"base-modal__enter_pvkw5","appearActive":"base-modal__appearActive_pvkw5","enterActive":"base-modal__enterActive_pvkw5","exit":"base-modal__exit_pvkw5","exitActive":"base-modal__exitActive_pvkw5","exitDone":"base-modal__exitDone_pvkw5"};
|
|
52
52
|
require('./index.css')
|
|
53
53
|
|
|
54
54
|
var BaseModalContext = React__default['default'].createContext({
|
|
@@ -63,14 +63,14 @@ var BaseModalContext = React__default['default'].createContext({
|
|
|
63
63
|
onClose: function () { return null; },
|
|
64
64
|
});
|
|
65
65
|
var BaseModal = React.forwardRef(function (_a, ref) {
|
|
66
|
-
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? coreComponentsStack.stackingOrder.MODAL : _l;
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
var
|
|
72
|
-
var
|
|
73
|
-
var
|
|
66
|
+
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? coreComponentsStack.stackingOrder.MODAL : _l, _m = _a.componentRef, componentRef = _m === void 0 ? null : _m;
|
|
67
|
+
var _o = React.useState(!open), exited = _o[0], setExited = _o[1];
|
|
68
|
+
var _p = React.useState(false), hasScroll = _p[0], setHasScroll = _p[1];
|
|
69
|
+
var _q = React.useState(false), hasHeader = _q[0], setHasHeader = _q[1];
|
|
70
|
+
var _r = React.useState(false), hasFooter = _r[0], setHasFooter = _r[1];
|
|
71
|
+
var _s = React.useState(false), headerHighlighted = _s[0], setHeaderHighlighted = _s[1];
|
|
72
|
+
var _t = React.useState(false), footerHighlighted = _t[0], setFooterHighlighted = _t[1];
|
|
73
|
+
var componentNodeRef = React.useRef(null);
|
|
74
74
|
var wrapperRef = React.useRef(null);
|
|
75
75
|
var scrollableNodeRef = React.useRef(null);
|
|
76
76
|
var contentNodeRef = React.useRef(null);
|
|
@@ -104,15 +104,16 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
104
104
|
}
|
|
105
105
|
}, [resizeObserver$1]);
|
|
106
106
|
var handleScroll = React.useCallback(function () {
|
|
107
|
-
if (!scrollableNodeRef.current || !
|
|
107
|
+
if (!scrollableNodeRef.current || !componentNodeRef.current)
|
|
108
108
|
return;
|
|
109
109
|
if (hasHeader) {
|
|
110
110
|
setHeaderHighlighted(!utils.isScrolledToTop(scrollableNodeRef.current) &&
|
|
111
|
-
|
|
111
|
+
componentNodeRef.current.getBoundingClientRect().top <= 0);
|
|
112
112
|
}
|
|
113
113
|
if (hasFooter) {
|
|
114
114
|
setFooterHighlighted(!utils.isScrolledToBottom(scrollableNodeRef.current) &&
|
|
115
|
-
|
|
115
|
+
componentNodeRef.current.getBoundingClientRect().bottom >=
|
|
116
|
+
window.innerHeight);
|
|
116
117
|
}
|
|
117
118
|
}, [hasFooter, hasHeader]);
|
|
118
119
|
var handleClose = React.useCallback(function (event, reason) {
|
|
@@ -150,7 +151,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
150
151
|
if (scrollHandler === 'wrapper')
|
|
151
152
|
return wrapperRef.current;
|
|
152
153
|
if (scrollHandler === 'content')
|
|
153
|
-
return
|
|
154
|
+
return componentNodeRef.current;
|
|
154
155
|
return scrollHandler.current || wrapperRef.current;
|
|
155
156
|
}, [scrollHandler]);
|
|
156
157
|
var handleEntered = React.useCallback(function (node, isAppearing) {
|
|
@@ -238,7 +239,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
238
239
|
zIndex: computedZIndex,
|
|
239
240
|
} },
|
|
240
241
|
React__default['default'].createElement(reactTransitionGroup.CSSTransition, __assign({ appear: true, timeout: 200, classNames: styles }, transitionProps, { in: open, onEntered: handleEntered, onExited: handleExited }),
|
|
241
|
-
React__default['default'].createElement("div", { className: cn__default['default'](styles.component, className), ref: componentRef },
|
|
242
|
+
React__default['default'].createElement("div", { className: cn__default['default'](styles.component, className), ref: mergeRefs__default['default']([componentRef, componentNodeRef]) },
|
|
242
243
|
React__default['default'].createElement("div", { className: cn__default['default'](styles.content, contentClassName) }, children))))))));
|
|
243
244
|
}));
|
|
244
245
|
});
|
package/dist/cssm/Component.d.ts
CHANGED
|
@@ -108,6 +108,10 @@ type BaseModalProps = {
|
|
|
108
108
|
* z-index компонента
|
|
109
109
|
*/
|
|
110
110
|
zIndex?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Реф, который должен быть установлен компонентной области
|
|
113
|
+
*/
|
|
114
|
+
componentRef?: MutableRefObject<HTMLDivElement | null>;
|
|
111
115
|
};
|
|
112
116
|
type BaseModalContext = {
|
|
113
117
|
hasFooter?: boolean;
|
package/dist/cssm/Component.js
CHANGED
|
@@ -62,14 +62,14 @@ var BaseModalContext = React__default['default'].createContext({
|
|
|
62
62
|
onClose: function () { return null; },
|
|
63
63
|
});
|
|
64
64
|
var BaseModal = React.forwardRef(function (_a, ref) {
|
|
65
|
-
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? coreComponentsStack.stackingOrder.MODAL : _l;
|
|
66
|
-
var
|
|
67
|
-
var
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
var
|
|
72
|
-
var
|
|
65
|
+
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? coreComponentsStack.stackingOrder.MODAL : _l, _m = _a.componentRef, componentRef = _m === void 0 ? null : _m;
|
|
66
|
+
var _o = React.useState(!open), exited = _o[0], setExited = _o[1];
|
|
67
|
+
var _p = React.useState(false), hasScroll = _p[0], setHasScroll = _p[1];
|
|
68
|
+
var _q = React.useState(false), hasHeader = _q[0], setHasHeader = _q[1];
|
|
69
|
+
var _r = React.useState(false), hasFooter = _r[0], setHasFooter = _r[1];
|
|
70
|
+
var _s = React.useState(false), headerHighlighted = _s[0], setHeaderHighlighted = _s[1];
|
|
71
|
+
var _t = React.useState(false), footerHighlighted = _t[0], setFooterHighlighted = _t[1];
|
|
72
|
+
var componentNodeRef = React.useRef(null);
|
|
73
73
|
var wrapperRef = React.useRef(null);
|
|
74
74
|
var scrollableNodeRef = React.useRef(null);
|
|
75
75
|
var contentNodeRef = React.useRef(null);
|
|
@@ -103,15 +103,16 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
103
103
|
}
|
|
104
104
|
}, [resizeObserver$1]);
|
|
105
105
|
var handleScroll = React.useCallback(function () {
|
|
106
|
-
if (!scrollableNodeRef.current || !
|
|
106
|
+
if (!scrollableNodeRef.current || !componentNodeRef.current)
|
|
107
107
|
return;
|
|
108
108
|
if (hasHeader) {
|
|
109
109
|
setHeaderHighlighted(!utils.isScrolledToTop(scrollableNodeRef.current) &&
|
|
110
|
-
|
|
110
|
+
componentNodeRef.current.getBoundingClientRect().top <= 0);
|
|
111
111
|
}
|
|
112
112
|
if (hasFooter) {
|
|
113
113
|
setFooterHighlighted(!utils.isScrolledToBottom(scrollableNodeRef.current) &&
|
|
114
|
-
|
|
114
|
+
componentNodeRef.current.getBoundingClientRect().bottom >=
|
|
115
|
+
window.innerHeight);
|
|
115
116
|
}
|
|
116
117
|
}, [hasFooter, hasHeader]);
|
|
117
118
|
var handleClose = React.useCallback(function (event, reason) {
|
|
@@ -149,7 +150,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
149
150
|
if (scrollHandler === 'wrapper')
|
|
150
151
|
return wrapperRef.current;
|
|
151
152
|
if (scrollHandler === 'content')
|
|
152
|
-
return
|
|
153
|
+
return componentNodeRef.current;
|
|
153
154
|
return scrollHandler.current || wrapperRef.current;
|
|
154
155
|
}, [scrollHandler]);
|
|
155
156
|
var handleEntered = React.useCallback(function (node, isAppearing) {
|
|
@@ -237,7 +238,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
|
|
|
237
238
|
zIndex: computedZIndex,
|
|
238
239
|
} },
|
|
239
240
|
React__default['default'].createElement(reactTransitionGroup.CSSTransition, __assign({ appear: true, timeout: 200, classNames: styles__default['default'] }, transitionProps, { in: open, onEntered: handleEntered, onExited: handleExited }),
|
|
240
|
-
React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].component, className), ref: componentRef },
|
|
241
|
+
React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].component, className), ref: mergeRefs__default['default']([componentRef, componentNodeRef]) },
|
|
241
242
|
React__default['default'].createElement("div", { className: cn__default['default'](styles__default['default'].content, contentClassName) }, children))))))));
|
|
242
243
|
}));
|
|
243
244
|
});
|
package/dist/esm/Component.d.ts
CHANGED
|
@@ -108,6 +108,10 @@ type BaseModalProps = {
|
|
|
108
108
|
* z-index компонента
|
|
109
109
|
*/
|
|
110
110
|
zIndex?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Реф, который должен быть установлен компонентной области
|
|
113
|
+
*/
|
|
114
|
+
componentRef?: MutableRefObject<HTMLDivElement | null>;
|
|
111
115
|
};
|
|
112
116
|
type BaseModalContext = {
|
|
113
117
|
hasFooter?: boolean;
|
package/dist/esm/Component.js
CHANGED
|
@@ -37,7 +37,7 @@ var __assign = function () {
|
|
|
37
37
|
return __assign.apply(this, arguments);
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
var styles = {"component":"base-
|
|
40
|
+
var styles = {"component":"base-modal__component_pvkw5","wrapper":"base-modal__wrapper_pvkw5","content":"base-modal__content_pvkw5","hidden":"base-modal__hidden_pvkw5","backdrop":"base-modal__backdrop_pvkw5","appear":"base-modal__appear_pvkw5","enter":"base-modal__enter_pvkw5","appearActive":"base-modal__appearActive_pvkw5","enterActive":"base-modal__enterActive_pvkw5","exit":"base-modal__exit_pvkw5","exitActive":"base-modal__exitActive_pvkw5","exitDone":"base-modal__exitDone_pvkw5"};
|
|
41
41
|
require('./index.css')
|
|
42
42
|
|
|
43
43
|
var BaseModalContext = React.createContext({
|
|
@@ -52,14 +52,14 @@ var BaseModalContext = React.createContext({
|
|
|
52
52
|
onClose: function () { return null; },
|
|
53
53
|
});
|
|
54
54
|
var BaseModal = forwardRef(function (_a, ref) {
|
|
55
|
-
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop$1 = _c === void 0 ? Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? stackingOrder.MODAL : _l;
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
var
|
|
59
|
-
var
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
55
|
+
var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop$1 = _c === void 0 ? Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.keepMounted, keepMounted = _k === void 0 ? false : _k, className = _a.className, contentClassName = _a.contentClassName, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _l = _a.zIndex, zIndex = _l === void 0 ? stackingOrder.MODAL : _l, _m = _a.componentRef, componentRef = _m === void 0 ? null : _m;
|
|
56
|
+
var _o = useState(!open), exited = _o[0], setExited = _o[1];
|
|
57
|
+
var _p = useState(false), hasScroll = _p[0], setHasScroll = _p[1];
|
|
58
|
+
var _q = useState(false), hasHeader = _q[0], setHasHeader = _q[1];
|
|
59
|
+
var _r = useState(false), hasFooter = _r[0], setHasFooter = _r[1];
|
|
60
|
+
var _s = useState(false), headerHighlighted = _s[0], setHeaderHighlighted = _s[1];
|
|
61
|
+
var _t = useState(false), footerHighlighted = _t[0], setFooterHighlighted = _t[1];
|
|
62
|
+
var componentNodeRef = useRef(null);
|
|
63
63
|
var wrapperRef = useRef(null);
|
|
64
64
|
var scrollableNodeRef = useRef(null);
|
|
65
65
|
var contentNodeRef = useRef(null);
|
|
@@ -93,15 +93,16 @@ var BaseModal = forwardRef(function (_a, ref) {
|
|
|
93
93
|
}
|
|
94
94
|
}, [resizeObserver]);
|
|
95
95
|
var handleScroll = useCallback(function () {
|
|
96
|
-
if (!scrollableNodeRef.current || !
|
|
96
|
+
if (!scrollableNodeRef.current || !componentNodeRef.current)
|
|
97
97
|
return;
|
|
98
98
|
if (hasHeader) {
|
|
99
99
|
setHeaderHighlighted(!isScrolledToTop(scrollableNodeRef.current) &&
|
|
100
|
-
|
|
100
|
+
componentNodeRef.current.getBoundingClientRect().top <= 0);
|
|
101
101
|
}
|
|
102
102
|
if (hasFooter) {
|
|
103
103
|
setFooterHighlighted(!isScrolledToBottom(scrollableNodeRef.current) &&
|
|
104
|
-
|
|
104
|
+
componentNodeRef.current.getBoundingClientRect().bottom >=
|
|
105
|
+
window.innerHeight);
|
|
105
106
|
}
|
|
106
107
|
}, [hasFooter, hasHeader]);
|
|
107
108
|
var handleClose = useCallback(function (event, reason) {
|
|
@@ -139,7 +140,7 @@ var BaseModal = forwardRef(function (_a, ref) {
|
|
|
139
140
|
if (scrollHandler === 'wrapper')
|
|
140
141
|
return wrapperRef.current;
|
|
141
142
|
if (scrollHandler === 'content')
|
|
142
|
-
return
|
|
143
|
+
return componentNodeRef.current;
|
|
143
144
|
return scrollHandler.current || wrapperRef.current;
|
|
144
145
|
}, [scrollHandler]);
|
|
145
146
|
var handleEntered = useCallback(function (node, isAppearing) {
|
|
@@ -227,7 +228,7 @@ var BaseModal = forwardRef(function (_a, ref) {
|
|
|
227
228
|
zIndex: computedZIndex,
|
|
228
229
|
} },
|
|
229
230
|
React.createElement(CSSTransition, __assign({ appear: true, timeout: 200, classNames: styles }, transitionProps, { in: open, onEntered: handleEntered, onExited: handleExited }),
|
|
230
|
-
React.createElement("div", { className: cn(styles.component, className), ref: componentRef },
|
|
231
|
+
React.createElement("div", { className: cn(styles.component, className), ref: mergeRefs([componentRef, componentNodeRef]) },
|
|
231
232
|
React.createElement("div", { className: cn(styles.content, contentClassName) }, children))))))));
|
|
232
233
|
}));
|
|
233
234
|
});
|
package/dist/esm/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: zuxb3 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-bg-primary: #fff;
|
|
4
4
|
}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
/* Hard up */
|
|
12
12
|
}
|
|
13
|
-
.base-
|
|
13
|
+
.base-modal__component_pvkw5 {
|
|
14
14
|
position: relative;
|
|
15
15
|
box-sizing: border-box;
|
|
16
16
|
background: var(--color-light-bg-primary);
|
|
17
17
|
margin: auto;
|
|
18
18
|
flex-shrink: 0;
|
|
19
19
|
}
|
|
20
|
-
.base-
|
|
20
|
+
.base-modal__wrapper_pvkw5 {
|
|
21
21
|
position: fixed;
|
|
22
22
|
top: 0;
|
|
23
23
|
left: 0;
|
|
@@ -30,33 +30,33 @@
|
|
|
30
30
|
align-items: center;
|
|
31
31
|
outline: 0;
|
|
32
32
|
}
|
|
33
|
-
.base-
|
|
33
|
+
.base-modal__content_pvkw5 {
|
|
34
34
|
width: 100%;
|
|
35
35
|
height: 100%;
|
|
36
36
|
display: flex;
|
|
37
37
|
flex-direction: column;
|
|
38
38
|
flex: 1;
|
|
39
39
|
}
|
|
40
|
-
.base-
|
|
40
|
+
.base-modal__hidden_pvkw5 {
|
|
41
41
|
display: none;
|
|
42
42
|
}
|
|
43
|
-
.base-
|
|
43
|
+
.base-modal__backdrop_pvkw5 {
|
|
44
44
|
z-index: 0;
|
|
45
45
|
}
|
|
46
|
-
.base-
|
|
47
|
-
.base-
|
|
46
|
+
.base-modal__appear_pvkw5,
|
|
47
|
+
.base-modal__enter_pvkw5 {
|
|
48
48
|
opacity: 0;
|
|
49
49
|
}
|
|
50
|
-
.base-
|
|
51
|
-
.base-
|
|
50
|
+
.base-modal__appearActive_pvkw5,
|
|
51
|
+
.base-modal__enterActive_pvkw5 {
|
|
52
52
|
opacity: 1;
|
|
53
53
|
transition: opacity 200ms ease-in;
|
|
54
54
|
}
|
|
55
|
-
.base-
|
|
55
|
+
.base-modal__exit_pvkw5 {
|
|
56
56
|
opacity: 1;
|
|
57
57
|
}
|
|
58
|
-
.base-
|
|
59
|
-
.base-
|
|
58
|
+
.base-modal__exitActive_pvkw5,
|
|
59
|
+
.base-modal__exitDone_pvkw5 {
|
|
60
60
|
opacity: 0;
|
|
61
61
|
transition: opacity 200ms ease-out;
|
|
62
62
|
}
|
package/dist/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: zuxb3 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-bg-primary: #fff;
|
|
4
4
|
}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
/* Hard up */
|
|
12
12
|
}
|
|
13
|
-
.base-
|
|
13
|
+
.base-modal__component_pvkw5 {
|
|
14
14
|
position: relative;
|
|
15
15
|
box-sizing: border-box;
|
|
16
16
|
background: var(--color-light-bg-primary);
|
|
17
17
|
margin: auto;
|
|
18
18
|
flex-shrink: 0;
|
|
19
19
|
}
|
|
20
|
-
.base-
|
|
20
|
+
.base-modal__wrapper_pvkw5 {
|
|
21
21
|
position: fixed;
|
|
22
22
|
top: 0;
|
|
23
23
|
left: 0;
|
|
@@ -30,33 +30,33 @@
|
|
|
30
30
|
align-items: center;
|
|
31
31
|
outline: 0;
|
|
32
32
|
}
|
|
33
|
-
.base-
|
|
33
|
+
.base-modal__content_pvkw5 {
|
|
34
34
|
width: 100%;
|
|
35
35
|
height: 100%;
|
|
36
36
|
display: flex;
|
|
37
37
|
flex-direction: column;
|
|
38
38
|
flex: 1;
|
|
39
39
|
}
|
|
40
|
-
.base-
|
|
40
|
+
.base-modal__hidden_pvkw5 {
|
|
41
41
|
display: none;
|
|
42
42
|
}
|
|
43
|
-
.base-
|
|
43
|
+
.base-modal__backdrop_pvkw5 {
|
|
44
44
|
z-index: 0;
|
|
45
45
|
}
|
|
46
|
-
.base-
|
|
47
|
-
.base-
|
|
46
|
+
.base-modal__appear_pvkw5,
|
|
47
|
+
.base-modal__enter_pvkw5 {
|
|
48
48
|
opacity: 0;
|
|
49
49
|
}
|
|
50
|
-
.base-
|
|
51
|
-
.base-
|
|
50
|
+
.base-modal__appearActive_pvkw5,
|
|
51
|
+
.base-modal__enterActive_pvkw5 {
|
|
52
52
|
opacity: 1;
|
|
53
53
|
transition: opacity 200ms ease-in;
|
|
54
54
|
}
|
|
55
|
-
.base-
|
|
55
|
+
.base-modal__exit_pvkw5 {
|
|
56
56
|
opacity: 1;
|
|
57
57
|
}
|
|
58
|
-
.base-
|
|
59
|
-
.base-
|
|
58
|
+
.base-modal__exitActive_pvkw5,
|
|
59
|
+
.base-modal__exitDone_pvkw5 {
|
|
60
60
|
opacity: 0;
|
|
61
61
|
transition: opacity 200ms ease-out;
|
|
62
62
|
}
|
|
@@ -108,6 +108,10 @@ type BaseModalProps = {
|
|
|
108
108
|
* z-index компонента
|
|
109
109
|
*/
|
|
110
110
|
zIndex?: number;
|
|
111
|
+
/**
|
|
112
|
+
* Реф, который должен быть установлен компонентной области
|
|
113
|
+
*/
|
|
114
|
+
componentRef?: MutableRefObject<HTMLDivElement | null>;
|
|
111
115
|
};
|
|
112
116
|
type BaseModalContext = {
|
|
113
117
|
hasFooter?: boolean;
|
package/dist/modern/Component.js
CHANGED
|
@@ -10,7 +10,7 @@ import { stackingOrder, Stack } from '@alfalab/core-components-stack/dist/modern
|
|
|
10
10
|
import '@alfalab/core-components-global-store/dist/modern';
|
|
11
11
|
import { isScrolledToTop, isScrolledToBottom, handleContainer, restoreContainerStyles, hasScrollbar } from './utils.js';
|
|
12
12
|
|
|
13
|
-
var styles = {"component":"base-
|
|
13
|
+
var styles = {"component":"base-modal__component_pvkw5","wrapper":"base-modal__wrapper_pvkw5","content":"base-modal__content_pvkw5","hidden":"base-modal__hidden_pvkw5","backdrop":"base-modal__backdrop_pvkw5","appear":"base-modal__appear_pvkw5","enter":"base-modal__enter_pvkw5","appearActive":"base-modal__appearActive_pvkw5","enterActive":"base-modal__enterActive_pvkw5","exit":"base-modal__exit_pvkw5","exitActive":"base-modal__exitActive_pvkw5","exitDone":"base-modal__exitDone_pvkw5"};
|
|
14
14
|
require('./index.css')
|
|
15
15
|
|
|
16
16
|
/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
|
|
@@ -25,14 +25,14 @@ const BaseModalContext = React.createContext({
|
|
|
25
25
|
setHasFooter: () => null,
|
|
26
26
|
onClose: () => null,
|
|
27
27
|
});
|
|
28
|
-
const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrapper', Backdrop: Backdrop$1 = Backdrop, backdropProps = {}, transitionProps = {}, disableBackdropClick, disableAutoFocus = false, disableFocusLock = false, disableEscapeKeyDown = false, disableRestoreFocus = false, keepMounted = false, className, contentClassName, wrapperClassName, onBackdropClick, onClose, onEscapeKeyDown, onMount, onUnmount, dataTestId, zIndex = stackingOrder.MODAL, }, ref) => {
|
|
28
|
+
const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrapper', Backdrop: Backdrop$1 = Backdrop, backdropProps = {}, transitionProps = {}, disableBackdropClick, disableAutoFocus = false, disableFocusLock = false, disableEscapeKeyDown = false, disableRestoreFocus = false, keepMounted = false, className, contentClassName, wrapperClassName, onBackdropClick, onClose, onEscapeKeyDown, onMount, onUnmount, dataTestId, zIndex = stackingOrder.MODAL, componentRef = null, }, ref) => {
|
|
29
29
|
const [exited, setExited] = useState(!open);
|
|
30
30
|
const [hasScroll, setHasScroll] = useState(false);
|
|
31
31
|
const [hasHeader, setHasHeader] = useState(false);
|
|
32
32
|
const [hasFooter, setHasFooter] = useState(false);
|
|
33
33
|
const [headerHighlighted, setHeaderHighlighted] = useState(false);
|
|
34
34
|
const [footerHighlighted, setFooterHighlighted] = useState(false);
|
|
35
|
-
const
|
|
35
|
+
const componentNodeRef = useRef(null);
|
|
36
36
|
const wrapperRef = useRef(null);
|
|
37
37
|
const scrollableNodeRef = useRef(null);
|
|
38
38
|
const contentNodeRef = useRef(null);
|
|
@@ -66,15 +66,16 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
|
|
|
66
66
|
}
|
|
67
67
|
}, [resizeObserver]);
|
|
68
68
|
const handleScroll = useCallback(() => {
|
|
69
|
-
if (!scrollableNodeRef.current || !
|
|
69
|
+
if (!scrollableNodeRef.current || !componentNodeRef.current)
|
|
70
70
|
return;
|
|
71
71
|
if (hasHeader) {
|
|
72
72
|
setHeaderHighlighted(!isScrolledToTop(scrollableNodeRef.current) &&
|
|
73
|
-
|
|
73
|
+
componentNodeRef.current.getBoundingClientRect().top <= 0);
|
|
74
74
|
}
|
|
75
75
|
if (hasFooter) {
|
|
76
76
|
setFooterHighlighted(!isScrolledToBottom(scrollableNodeRef.current) &&
|
|
77
|
-
|
|
77
|
+
componentNodeRef.current.getBoundingClientRect().bottom >=
|
|
78
|
+
window.innerHeight);
|
|
78
79
|
}
|
|
79
80
|
}, [hasFooter, hasHeader]);
|
|
80
81
|
const handleClose = useCallback((event, reason) => {
|
|
@@ -112,7 +113,7 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
|
|
|
112
113
|
if (scrollHandler === 'wrapper')
|
|
113
114
|
return wrapperRef.current;
|
|
114
115
|
if (scrollHandler === 'content')
|
|
115
|
-
return
|
|
116
|
+
return componentNodeRef.current;
|
|
116
117
|
return scrollHandler.current || wrapperRef.current;
|
|
117
118
|
}, [scrollHandler]);
|
|
118
119
|
const handleEntered = useCallback((node, isAppearing) => {
|
|
@@ -198,7 +199,7 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
|
|
|
198
199
|
zIndex: computedZIndex,
|
|
199
200
|
} },
|
|
200
201
|
React.createElement(CSSTransition, Object.assign({ appear: true, timeout: 200, classNames: styles }, transitionProps, { in: open, onEntered: handleEntered, onExited: handleExited }),
|
|
201
|
-
React.createElement("div", { className: cn(styles.component, className), ref: componentRef },
|
|
202
|
+
React.createElement("div", { className: cn(styles.component, className), ref: mergeRefs([componentRef, componentNodeRef]) },
|
|
202
203
|
React.createElement("div", { className: cn(styles.content, contentClassName) }, children))))))))));
|
|
203
204
|
});
|
|
204
205
|
|
package/dist/modern/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* hash:
|
|
1
|
+
/* hash: zuxb3 */
|
|
2
2
|
:root {
|
|
3
3
|
--color-light-bg-primary: #fff;
|
|
4
4
|
}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
/* Hard up */
|
|
12
12
|
}
|
|
13
|
-
.base-
|
|
13
|
+
.base-modal__component_pvkw5 {
|
|
14
14
|
position: relative;
|
|
15
15
|
box-sizing: border-box;
|
|
16
16
|
background: var(--color-light-bg-primary);
|
|
17
17
|
margin: auto;
|
|
18
18
|
flex-shrink: 0;
|
|
19
19
|
}
|
|
20
|
-
.base-
|
|
20
|
+
.base-modal__wrapper_pvkw5 {
|
|
21
21
|
position: fixed;
|
|
22
22
|
top: 0;
|
|
23
23
|
left: 0;
|
|
@@ -30,33 +30,33 @@
|
|
|
30
30
|
align-items: center;
|
|
31
31
|
outline: 0;
|
|
32
32
|
}
|
|
33
|
-
.base-
|
|
33
|
+
.base-modal__content_pvkw5 {
|
|
34
34
|
width: 100%;
|
|
35
35
|
height: 100%;
|
|
36
36
|
display: flex;
|
|
37
37
|
flex-direction: column;
|
|
38
38
|
flex: 1;
|
|
39
39
|
}
|
|
40
|
-
.base-
|
|
40
|
+
.base-modal__hidden_pvkw5 {
|
|
41
41
|
display: none;
|
|
42
42
|
}
|
|
43
|
-
.base-
|
|
43
|
+
.base-modal__backdrop_pvkw5 {
|
|
44
44
|
z-index: 0;
|
|
45
45
|
}
|
|
46
|
-
.base-
|
|
47
|
-
.base-
|
|
46
|
+
.base-modal__appear_pvkw5,
|
|
47
|
+
.base-modal__enter_pvkw5 {
|
|
48
48
|
opacity: 0;
|
|
49
49
|
}
|
|
50
|
-
.base-
|
|
51
|
-
.base-
|
|
50
|
+
.base-modal__appearActive_pvkw5,
|
|
51
|
+
.base-modal__enterActive_pvkw5 {
|
|
52
52
|
opacity: 1;
|
|
53
53
|
transition: opacity 200ms ease-in;
|
|
54
54
|
}
|
|
55
|
-
.base-
|
|
55
|
+
.base-modal__exit_pvkw5 {
|
|
56
56
|
opacity: 1;
|
|
57
57
|
}
|
|
58
|
-
.base-
|
|
59
|
-
.base-
|
|
58
|
+
.base-modal__exitActive_pvkw5,
|
|
59
|
+
.base-modal__exitDone_pvkw5 {
|
|
60
60
|
opacity: 0;
|
|
61
61
|
transition: opacity 200ms ease-out;
|
|
62
62
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-base-modal",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "BaseModal component",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,5 +31,5 @@
|
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": "^16.9.0 || ^17.0.1"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "ddf4fab6035139cf412e0acb7174ef388f23e4f2"
|
|
35
35
|
}
|