@datability/8ui 0.1.9 → 0.1.10
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.
|
@@ -6,140 +6,146 @@ import { createPortal } from 'react-dom';
|
|
|
6
6
|
import { DBuiContext } from '../context';
|
|
7
7
|
var Menu = function (_a) {
|
|
8
8
|
var children = _a.children, trigger = _a.trigger, _b = _a.isAutoCloseWhenClickOutsideMenuItem, isAutoCloseWhenClickOutsideMenuItem = _b === void 0 ? true : _b, disabled = _a.disabled, _c = _a.maxHeight, maxHeight = _c === void 0 ? 200 : _c;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
if (typeof window !== 'undefined') {
|
|
10
|
+
// For SEO
|
|
11
|
+
return (React.createElement("div", { className: "DBui-wrapperMenuItem", "aria-hidden": true }, children));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
var _d = useContext(DBuiContext), openMenuCount_1 = _d.openMenuCount, openModalCount_1 = _d.openModalCount, setOpenMenuCount_1 = _d.setOpenMenuCount;
|
|
15
|
+
var setMenuIncress_1 = function () { return setOpenMenuCount_1 === null || setOpenMenuCount_1 === void 0 ? void 0 : setOpenMenuCount_1(function (prev) { return prev + 1; }); };
|
|
16
|
+
var setMenuDecress_1 = function () { return setOpenMenuCount_1 === null || setOpenMenuCount_1 === void 0 ? void 0 : setOpenMenuCount_1(function (prev) { return prev - 1; }); };
|
|
17
|
+
var setMenuZero_1 = function () { return setOpenMenuCount_1 === null || setOpenMenuCount_1 === void 0 ? void 0 : setOpenMenuCount_1(0); };
|
|
18
|
+
var _e = useState(false), isOpen_1 = _e[0], setIsOpen_1 = _e[1];
|
|
19
|
+
var _f = useState({ top: 0, left: 0 }), menuStyle = _f[0], setMenuStyle_1 = _f[1];
|
|
20
|
+
var menuRef_1 = useRef(null);
|
|
21
|
+
var menuItemRef_1 = useRef(null);
|
|
22
|
+
var triggerRef_1 = useRef(null);
|
|
23
|
+
var handleToggle = function () {
|
|
24
|
+
if (disabled)
|
|
25
|
+
return;
|
|
26
|
+
setIsOpen_1(function (prevIsOpen) {
|
|
27
|
+
if (prevIsOpen) {
|
|
28
|
+
if (openMenuCount_1 <= 0) {
|
|
29
|
+
setMenuZero_1();
|
|
30
|
+
if (openModalCount_1 <= 0) {
|
|
31
|
+
document.body.style.overflow = 'visible';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
setMenuDecress_1();
|
|
27
36
|
}
|
|
37
|
+
calculateMenuPosition_1();
|
|
28
38
|
}
|
|
29
39
|
else {
|
|
30
|
-
|
|
40
|
+
document.body.style.overflow = 'hidden';
|
|
41
|
+
calculateMenuPosition_1();
|
|
31
42
|
}
|
|
32
|
-
|
|
43
|
+
return !prevIsOpen;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
// Close the menu when clicking outside
|
|
47
|
+
useEffect(function () {
|
|
48
|
+
// Update the global counter and adjust the overflow style
|
|
49
|
+
if (isOpen_1) {
|
|
50
|
+
setMenuIncress_1();
|
|
51
|
+
document.body.style.overflow = 'hidden';
|
|
33
52
|
}
|
|
34
53
|
else {
|
|
35
|
-
|
|
36
|
-
|
|
54
|
+
if (openMenuCount_1 <= 0) {
|
|
55
|
+
setMenuZero_1();
|
|
56
|
+
if (openModalCount_1 <= 0) {
|
|
57
|
+
document.body.style.overflow = 'visible';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
setMenuDecress_1();
|
|
62
|
+
}
|
|
37
63
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
64
|
+
var handleClickOutside = function (event) {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
if (isAutoCloseWhenClickOutsideMenuItem) {
|
|
67
|
+
if (menuRef_1.current && !menuRef_1.current.contains(event.target)) {
|
|
68
|
+
setIsOpen_1(false);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
if (menuRef_1.current &&
|
|
73
|
+
!menuRef_1.current.contains(event.target) &&
|
|
74
|
+
!((_b = (_a = menuItemRef_1.current) === null || _a === void 0 ? void 0 : _a.contains) === null || _b === void 0 ? void 0 : _b.call(_a, event.target))) {
|
|
75
|
+
setIsOpen_1(false);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
var handleKeydown = function (event) {
|
|
80
|
+
// Check if the pressed key is the Escape key
|
|
81
|
+
if (event.key === 'Escape' || event.keyCode === 27) {
|
|
82
|
+
setIsOpen_1(false);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
document.addEventListener('click', handleClickOutside);
|
|
86
|
+
document.addEventListener('keydown', handleKeydown);
|
|
87
|
+
return function () {
|
|
88
|
+
document.removeEventListener('click', handleClickOutside);
|
|
89
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
90
|
+
// Adjust the overflow style based on the global counter
|
|
91
|
+
if (openMenuCount_1 === 0 && openModalCount_1 === 0) {
|
|
52
92
|
document.body.style.overflow = 'visible';
|
|
53
93
|
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
94
|
+
};
|
|
95
|
+
}, [isOpen_1]);
|
|
96
|
+
var calculateMenuPosition_1 = function () {
|
|
97
|
+
if (triggerRef_1.current && menuItemRef_1.current) {
|
|
98
|
+
var triggerRect = triggerRef_1.current.getBoundingClientRect();
|
|
99
|
+
var menuItemRect = menuItemRef_1.current.getBoundingClientRect();
|
|
100
|
+
var viewportHeight = window.innerHeight;
|
|
101
|
+
var viewportWidth = window.innerWidth;
|
|
102
|
+
// Calculate available space above and below the trigger
|
|
103
|
+
var spaceAbove = triggerRect.top;
|
|
104
|
+
var spaceBelow = viewportHeight - triggerRect.bottom;
|
|
105
|
+
// Calculate the height of the menu
|
|
106
|
+
var menuMaxHeight = maxHeight;
|
|
107
|
+
var actualMenuHeight = Math.min(menuMaxHeight, menuItemRect.height);
|
|
108
|
+
var top_1 = 0;
|
|
109
|
+
var left = 0;
|
|
110
|
+
// Choose to position the menu above or below based on available space
|
|
111
|
+
if (spaceBelow >= actualMenuHeight) {
|
|
112
|
+
// Enough space below the trigger
|
|
113
|
+
top_1 = triggerRect.bottom + window.scrollY;
|
|
64
114
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
!menuRef.current.contains(event.target) &&
|
|
69
|
-
!((_b = (_a = menuItemRef.current) === null || _a === void 0 ? void 0 : _a.contains) === null || _b === void 0 ? void 0 : _b.call(_a, event.target))) {
|
|
70
|
-
setIsOpen(false);
|
|
115
|
+
else if (spaceAbove >= actualMenuHeight) {
|
|
116
|
+
// Enough space above the trigger
|
|
117
|
+
top_1 = triggerRect.top + window.scrollY - actualMenuHeight;
|
|
71
118
|
}
|
|
119
|
+
else {
|
|
120
|
+
// Not enough space above or below; you might want to add more logic here for complex cases
|
|
121
|
+
top_1 = triggerRect.bottom + window.scrollY; // Default to below
|
|
122
|
+
}
|
|
123
|
+
// Ensure the menu stays within the bounds of the screen
|
|
124
|
+
left = Math.min(Math.max(triggerRect.left + window.scrollX, 0), viewportWidth - menuRef_1.current.offsetWidth);
|
|
125
|
+
// Set the calculated position in state
|
|
126
|
+
setMenuStyle_1({ top: top_1, left: left, maxHeight: "".concat(maxHeight, "px") });
|
|
72
127
|
}
|
|
73
128
|
};
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var menuItemRect = menuItemRef.current.getBoundingClientRect();
|
|
95
|
-
var viewportHeight = window.innerHeight;
|
|
96
|
-
var viewportWidth = window.innerWidth;
|
|
97
|
-
// Calculate available space above and below the trigger
|
|
98
|
-
var spaceAbove = triggerRect.top;
|
|
99
|
-
var spaceBelow = viewportHeight - triggerRect.bottom;
|
|
100
|
-
// Calculate the height of the menu
|
|
101
|
-
var menuMaxHeight = maxHeight;
|
|
102
|
-
var actualMenuHeight = Math.min(menuMaxHeight, menuItemRect.height);
|
|
103
|
-
var top_1 = 0;
|
|
104
|
-
var left = 0;
|
|
105
|
-
// Choose to position the menu above or below based on available space
|
|
106
|
-
if (spaceBelow >= actualMenuHeight) {
|
|
107
|
-
// Enough space below the trigger
|
|
108
|
-
top_1 = triggerRect.bottom + window.scrollY;
|
|
109
|
-
}
|
|
110
|
-
else if (spaceAbove >= actualMenuHeight) {
|
|
111
|
-
// Enough space above the trigger
|
|
112
|
-
top_1 = triggerRect.top + window.scrollY - actualMenuHeight;
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
// Not enough space above or below; you might want to add more logic here for complex cases
|
|
116
|
-
top_1 = triggerRect.bottom + window.scrollY; // Default to below
|
|
117
|
-
}
|
|
118
|
-
// Ensure the menu stays within the bounds of the screen
|
|
119
|
-
left = Math.min(Math.max(triggerRect.left + window.scrollX, 0), viewportWidth - menuRef.current.offsetWidth);
|
|
120
|
-
// Set the calculated position in state
|
|
121
|
-
setMenuStyle({ top: top_1, left: left, maxHeight: "".concat(maxHeight, "px") });
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
// Effect to handle window resize and click outside
|
|
125
|
-
useEffect(function () {
|
|
126
|
-
calculateMenuPosition();
|
|
127
|
-
// Event listener for window resize
|
|
128
|
-
var handleResize = function () {
|
|
129
|
-
if (isOpen) {
|
|
130
|
-
calculateMenuPosition();
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
// Add the event listener
|
|
134
|
-
window.addEventListener('resize', handleResize);
|
|
135
|
-
// Clean up the event listener when component unmounts
|
|
136
|
-
return function () {
|
|
137
|
-
window.removeEventListener('resize', handleResize);
|
|
138
|
-
};
|
|
139
|
-
}, [isOpen]);
|
|
140
|
-
return (React.createElement("div", { ref: menuRef },
|
|
141
|
-
React.createElement("div", { onClick: handleToggle, className: "cursor", ref: triggerRef }, trigger({ isOpen: isOpen })),
|
|
142
|
-
createPortal(React.createElement("div", { className: "DBui-wrapperMenuItem", "aria-hidden": !(isOpen && !disabled), style: menuStyle, ref: menuItemRef }, children), (document === null || document === void 0 ? void 0 : document.getElementById('root')) || (document === null || document === void 0 ? void 0 : document.getElementById('__next')))));
|
|
129
|
+
// Effect to handle window resize and click outside
|
|
130
|
+
useEffect(function () {
|
|
131
|
+
calculateMenuPosition_1();
|
|
132
|
+
// Event listener for window resize
|
|
133
|
+
var handleResize = function () {
|
|
134
|
+
if (isOpen_1) {
|
|
135
|
+
calculateMenuPosition_1();
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
// Add the event listener
|
|
139
|
+
window.addEventListener('resize', handleResize);
|
|
140
|
+
// Clean up the event listener when component unmounts
|
|
141
|
+
return function () {
|
|
142
|
+
window.removeEventListener('resize', handleResize);
|
|
143
|
+
};
|
|
144
|
+
}, [isOpen_1]);
|
|
145
|
+
return (React.createElement("div", { ref: menuRef_1 },
|
|
146
|
+
React.createElement("div", { onClick: handleToggle, className: "cursor", ref: triggerRef_1 }, trigger({ isOpen: isOpen_1 })),
|
|
147
|
+
createPortal(React.createElement("div", { className: "DBui-wrapperMenuItem", "aria-hidden": !(isOpen_1 && !disabled), style: menuStyle, ref: menuItemRef_1 }, children), document.getElementById('root') || document.getElementById('__next'))));
|
|
148
|
+
}
|
|
143
149
|
};
|
|
144
150
|
export default Menu;
|
|
145
151
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Menu/index.tsx"],"names":[],"mappings":"AAAA,MAAM;AACN,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEtE,qBAAqB;AACrB,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,IAAM,IAAI,GAAwB,UAAC,EAMlC;QALC,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,2CAA0C,EAA1C,mCAAmC,mBAAG,IAAI,KAAA,EAC1C,QAAQ,cAAA,EACR,iBAAe,EAAf,SAAS,mBAAG,GAAG,KAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Menu/index.tsx"],"names":[],"mappings":"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"}
|