@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: React.MouseEvent<unknown> | KeyboardEvent) => void;
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,KAAiC,MAAM,OAAO,CAAC;AAItD,OAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAkBhD,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,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,aAAa,KAAK,IAAI,CAAC;CACtE;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,CAiGjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
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]); // Allow closing the modal by pressing the Escape key
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
- visible: visible,
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.196+9518bb9",
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": "9518bb958af5cb4a795b7feddcaf1695d75ac8ba"
74
+ "gitHead": "38aedc23c6e54372524d3b975486e84d8575fcce"
75
75
  }