@datability/8ui 0.1.51 → 0.1.53

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.
@@ -13,7 +13,13 @@ var Modal = function (_a) {
13
13
  var setModalDecress = function () { return setOpenModalCount === null || setOpenModalCount === void 0 ? void 0 : setOpenModalCount(function (prev) { return prev - 1; }); };
14
14
  var setModalZero = function () { return setOpenModalCount === null || setOpenModalCount === void 0 ? void 0 : setOpenModalCount(0); };
15
15
  var modalRef = useRef(null);
16
- // Close the menu when clicking outside
16
+ // whitelist for portal UI
17
+ var WHITELIST_CLASSES = [
18
+ 'DBui-wrapperMenuItem',
19
+ 'DBui-inputDateWrapperCalendar',
20
+ 'DBui-inputDateRangeRowMonthYearSelected',
21
+ 'DBui-inputDateTimeWrapperCalendar',
22
+ ];
17
23
  useEffect(function () {
18
24
  // Update the global counter and adjust the overflow style
19
25
  if (open) {
@@ -31,30 +37,45 @@ var Modal = function (_a) {
31
37
  setModalDecress();
32
38
  }
33
39
  }
34
- var handleKeydown = function (event) {
35
- // Get all elements with the class 'DBui-modalBase'
36
- var modalElements = document.querySelectorAll('.DBui-modalBase');
37
- // Convert NodeList to an array to use filter method
38
- var modalArray = Array.from(modalElements);
39
- // Filter the array based on data-hidden attribute
40
- var showModals = modalArray.filter(function (modal) {
41
- return modal.getAttribute('data-hidden') === 'false';
42
- });
43
- var topLayerShowModal = showModals[showModals.length - 1];
44
- // Check if the pressed key is the Escape key
45
- if ((event.key === 'Escape' || event.keyCode === 27) && (topLayerShowModal === null || topLayerShowModal === void 0 ? void 0 : topLayerShowModal.getAttribute('id')) === id) {
46
- onClose();
47
- }
48
- };
49
- document.addEventListener('keydown', handleKeydown);
50
40
  return function () {
51
- document.removeEventListener('keydown', handleKeydown);
52
- // Adjust the overflow style based on the global counter
53
41
  if (openModalCount === 0 && openMenuCount === 0) {
54
42
  document.body.style.overflow = 'visible';
55
43
  }
56
44
  };
57
45
  }, [open]);
46
+ useEffect(function () {
47
+ var modalElements = document.querySelectorAll('.DBui-modalBase');
48
+ var modalArray = Array.from(modalElements);
49
+ var showModals = modalArray.filter(function (modal) { return modal.getAttribute('data-hidden') === 'false'; });
50
+ var topModal = showModals[showModals.length - 1];
51
+ if ((topModal === null || topModal === void 0 ? void 0 : topModal.getAttribute('id')) !== id)
52
+ return;
53
+ // ---------- ESC CLOSE ----------
54
+ function handleKeydown(event) {
55
+ if (event.key === 'Escape' || event.keyCode === 27) {
56
+ onClose();
57
+ }
58
+ }
59
+ // ---------- CLICK OUTSIDE CLOSE ----------
60
+ function handleClickOutside(e) {
61
+ var _a;
62
+ var target = e.target;
63
+ // ถ้า click ใน modal → ไม่ปิด
64
+ if ((_a = modalRef.current) === null || _a === void 0 ? void 0 : _a.contains(target))
65
+ return;
66
+ // ถ้า click ใน whitelist (menu, dropdown, select panel)
67
+ var isInWhitelist = WHITELIST_CLASSES.some(function (cls) { return target.closest('.' + cls); });
68
+ if (isInWhitelist)
69
+ return;
70
+ onClose();
71
+ }
72
+ document.addEventListener('keydown', handleKeydown);
73
+ document.addEventListener('mousedown', handleClickOutside);
74
+ return function () {
75
+ document.removeEventListener('keydown', handleKeydown);
76
+ document.removeEventListener('mousedown', handleClickOutside);
77
+ };
78
+ }, [openModalCount]);
58
79
  return (React.createElement(Blackdrop, { open: open },
59
80
  React.createElement("div", { className: "DBui-modalBase DBui-modalContent", "data-hidden": !open, ref: modalRef, id: id },
60
81
  React.createElement("img", { src: closedSVG, alt: "", className: "DBui-close", onClick: onClose }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Modal/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datability/8ui",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "description": "",
5
5
  "main": "dist/components/index.js",
6
6
  "types": "dist/components/index.d.ts",