@decisiv/ui-components 2.0.1-alpha.196 → 2.0.1-alpha.197
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.
|
@@ -14,7 +14,7 @@ export interface DrawerProps extends HeaderProps, FooterProps {
|
|
|
14
14
|
side?: 'left' | 'right';
|
|
15
15
|
zIndex?: number;
|
|
16
16
|
visible?: boolean;
|
|
17
|
-
onClose?: (event:
|
|
17
|
+
onClose?: (event: MouseEvent | KeyboardEvent) => void;
|
|
18
18
|
}
|
|
19
19
|
export declare type OverlayProps = Pick<DrawerProps, 'zIndex' | 'side' | 'visible'>;
|
|
20
20
|
declare const Drawer: React.FC<DrawerProps>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Drawer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAmBhD,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,MAAO,SAAQ,WAAW;IAClC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,WAAW;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW,EAAE,WAAW;IAC3D,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,KAAK,IAAI,CAAC;CACvD;AAED,oBAAY,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5E,QAAA,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAmHjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -25,6 +25,8 @@ var _styles = require("./styles");
|
|
|
25
25
|
|
|
26
26
|
var _useTranslations = _interopRequireDefault(require("../../utils/useTranslations"));
|
|
27
27
|
|
|
28
|
+
var _useClickOutside = _interopRequireDefault(require("../../utils/useClickOutside"));
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
32
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
|
|
@@ -47,11 +49,18 @@ var Drawer = function Drawer(_ref) {
|
|
|
47
49
|
createPortal = _useConfig.createPortal;
|
|
48
50
|
|
|
49
51
|
var translate = (0, _useTranslations.default)();
|
|
52
|
+
var contentRef = (0, _react.useRef)(null);
|
|
50
53
|
var onKeyDown = (0, _react.useCallback)(function (event) {
|
|
51
54
|
if (event.key === 'Escape') {
|
|
52
55
|
onClose && onClose(event);
|
|
53
56
|
}
|
|
54
|
-
}, [onClose]);
|
|
57
|
+
}, [onClose]);
|
|
58
|
+
var handleOnClickOutside = (0, _react.useCallback)(function (event) {
|
|
59
|
+
if (onClose && visible) {
|
|
60
|
+
onClose(event);
|
|
61
|
+
}
|
|
62
|
+
}, [onClose, visible]);
|
|
63
|
+
(0, _useClickOutside.default)([contentRef], handleOnClickOutside); // Allow closing the modal by pressing the Escape key
|
|
55
64
|
|
|
56
65
|
(0, _react.useEffect)(function () {
|
|
57
66
|
if (visible && _canUseDOM.default) {
|
|
@@ -74,8 +83,9 @@ var Drawer = function Drawer(_ref) {
|
|
|
74
83
|
visible: visible,
|
|
75
84
|
"data-testid": "overlay"
|
|
76
85
|
}, _react.default.createElement(_styles.Content, {
|
|
77
|
-
|
|
86
|
+
ref: contentRef,
|
|
78
87
|
side: side,
|
|
88
|
+
visible: visible,
|
|
79
89
|
"data-testid": "content"
|
|
80
90
|
}, showHeader && _react.default.createElement(_styles.Header, {
|
|
81
91
|
"data-testid": "drawer-header"
|
|
@@ -119,4 +119,21 @@ describe('Drawer', function () {
|
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
121
|
});
|
|
122
|
+
describe('click outside', function () {
|
|
123
|
+
it('calls the "onClose" function when clicking outside the Drawer', function () {
|
|
124
|
+
var onClose = jest.fn();
|
|
125
|
+
|
|
126
|
+
var _render7 = render(_react.default.createElement(_.default, {
|
|
127
|
+
visible: true,
|
|
128
|
+
onClose: onClose
|
|
129
|
+
})),
|
|
130
|
+
getByTestId = _render7.getByTestId;
|
|
131
|
+
|
|
132
|
+
var overlay = getByTestId(/overlay/i);
|
|
133
|
+
|
|
134
|
+
_react2.fireEvent.click(overlay);
|
|
135
|
+
|
|
136
|
+
expect(onClose).toHaveBeenCalled();
|
|
137
|
+
});
|
|
138
|
+
});
|
|
122
139
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decisiv/ui-components",
|
|
3
|
-
"version": "2.0.1-alpha.
|
|
3
|
+
"version": "2.0.1-alpha.197+38aedc2",
|
|
4
4
|
"description": "Decisiv's design system React components",
|
|
5
5
|
"author": "Decisiv UI Development Team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
73
|
"private": false,
|
|
74
|
-
"gitHead": "
|
|
74
|
+
"gitHead": "38aedc23c6e54372524d3b975486e84d8575fcce"
|
|
75
75
|
}
|