@dktunited-techoff/techoff-suite-ui 1.13.5 → 1.13.6
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/esm/components/TsMenuButton/TsMenuButton.js +3 -2
- package/esm/components/TsMenuButton/TsMenuButton.js.map +1 -1
- package/lib/components/TsMenuButton/TsMenuButton.js +3 -2
- package/lib/components/TsMenuButton/TsMenuButton.js.map +1 -1
- package/package.json +1 -1
- package/src/components/TsMenuButton/TsMenuButton.tsx +3 -2
|
@@ -19,7 +19,8 @@ export const TsMenuItem = ({ icon, label, onClick }) => {
|
|
|
19
19
|
};
|
|
20
20
|
export const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items }) => {
|
|
21
21
|
const [showMenu, setShowMenu] = useState(false);
|
|
22
|
-
const
|
|
22
|
+
const containerRef = useClickOutside(() => setShowMenu(false));
|
|
23
|
+
const buttonRef = useRef(null);
|
|
23
24
|
const menuRef = useRef(null);
|
|
24
25
|
const [menuStyle, setMenuStyle] = useState({});
|
|
25
26
|
// ########
|
|
@@ -45,7 +46,7 @@ export const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items
|
|
|
45
46
|
const menu = showMenu && (React.createElement("div", { className: `ts-menu-button-menu ts-menu-button-menu--${menuAlignment}`, style: menuStyle, ref: menuRef }, items));
|
|
46
47
|
// #########
|
|
47
48
|
// Rendering
|
|
48
|
-
return (React.createElement("div", { className: "ts-menu-button" },
|
|
49
|
+
return (React.createElement("div", { className: "ts-menu-button", ref: containerRef },
|
|
49
50
|
React.createElement("div", { ref: buttonRef }, React.cloneElement(mainButton, { onClick: handleShowMenu })),
|
|
50
51
|
createPortal(menu, document.body)));
|
|
51
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TsMenuButton.js","sourceRoot":"","sources":["../../../src/components/TsMenuButton/TsMenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA6B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,YAAY;IACZ,YAAY;IACZ,OAAO,6BAAK,SAAS,EAAC,iBAAiB,GAAG,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAmB,EAAE,EAAE;IACtE,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,gCAAQ,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO;QAC9C,IAAI,IAAI,CACP,6BAAK,SAAS,EAAC,mBAAmB;YAChC,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,CAC5B,CACP;QAED,6BAAK,SAAS,EAAC,oBAAoB,IAAE,KAAK,CAAO,CAC1C,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE,UAAU,EAAE,KAAK,EAAqB,EAAE,EAAE;IACvG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"TsMenuButton.js","sourceRoot":"","sources":["../../../src/components/TsMenuButton/TsMenuButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA6B,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,YAAY;IACZ,YAAY;IACZ,OAAO,6BAAK,SAAS,EAAC,iBAAiB,GAAG,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAmB,EAAE,EAAE;IACtE,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,gCAAQ,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO;QAC9C,IAAI,IAAI,CACP,6BAAK,SAAS,EAAC,mBAAmB;YAChC,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,CAC5B,CACP;QAED,6BAAK,SAAS,EAAC,oBAAoB,IAAE,KAAK,CAAO,CAC1C,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE,UAAU,EAAE,KAAK,EAAqB,EAAE,EAAE;IACvG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAE9D,WAAW;IACX,WAAW;IACX,MAAM,cAAc,GAAG,CAAC,CAAgC,EAAE,EAAE;QAC1D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,WAAW;IACX,WAAW;IACX,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,IAAI,SAAS,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;YACpD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;YAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC;YAClE,MAAM,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC;YAEtD,YAAY,CAAC;gBACX,GAAG,EAAE,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,GAAG,CAAC,IAAI;gBACrG,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,IAAI;aAC7B,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,QAAQ,IAAI,CACvB,6BAAK,SAAS,EAAE,4CAA4C,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,IACxG,KAAK,CACF,CACP,CAAC;IAEF,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,YAAY;QAC/C,6BAAK,GAAG,EAAE,SAAS,IAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAO;QACvF,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAC9B,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -24,7 +24,8 @@ const TsMenuItem = ({ icon, label, onClick }) => {
|
|
|
24
24
|
exports.TsMenuItem = TsMenuItem;
|
|
25
25
|
const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items }) => {
|
|
26
26
|
const [showMenu, setShowMenu] = (0, react_1.useState)(false);
|
|
27
|
-
const
|
|
27
|
+
const containerRef = (0, use_click_outside_1.useClickOutside)(() => setShowMenu(false));
|
|
28
|
+
const buttonRef = (0, react_1.useRef)(null);
|
|
28
29
|
const menuRef = (0, react_1.useRef)(null);
|
|
29
30
|
const [menuStyle, setMenuStyle] = (0, react_1.useState)({});
|
|
30
31
|
// ########
|
|
@@ -50,7 +51,7 @@ const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items }) =>
|
|
|
50
51
|
const menu = showMenu && (React.createElement("div", { className: `ts-menu-button-menu ts-menu-button-menu--${menuAlignment}`, style: menuStyle, ref: menuRef }, items));
|
|
51
52
|
// #########
|
|
52
53
|
// Rendering
|
|
53
|
-
return (React.createElement("div", { className: "ts-menu-button" },
|
|
54
|
+
return (React.createElement("div", { className: "ts-menu-button", ref: containerRef },
|
|
54
55
|
React.createElement("div", { ref: buttonRef }, React.cloneElement(mainButton, { onClick: handleShowMenu })),
|
|
55
56
|
(0, react_dom_1.createPortal)(menu, document.body)));
|
|
56
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TsMenuButton.js","sourceRoot":"","sources":["../../../src/components/TsMenuButton/TsMenuButton.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,iCAA+E;AAC/E,yCAAyC;AAEzC,6CAA0C;AAC1C,qEAAgE;AAChE,8BAA4B;AAErB,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,YAAY;IACZ,YAAY;IACZ,OAAO,6BAAK,SAAS,EAAC,iBAAiB,GAAG,CAAC;AAC7C,CAAC,CAAC;AAJW,QAAA,aAAa,iBAIxB;AAEK,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAmB,EAAE,EAAE;IACtE,YAAY;IACZ,YAAY;IACZ,OAAO,CACL,gCAAQ,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,OAAO;QAC9C,IAAI,IAAI,CACP,6BAAK,SAAS,EAAC,mBAAmB;YAChC,oBAAC,eAAM,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,CAC5B,CACP;QAED,6BAAK,SAAS,EAAC,oBAAoB,IAAE,KAAK,CAAO,CAC1C,CACV,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB;AAEK,MAAM,YAAY,GAAG,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE,UAAU,EAAE,KAAK,EAAqB,EAAE,EAAE;IACvG,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACzD,MAAM,
|
|
1
|
+
{"version":3,"file":"TsMenuButton.js","sourceRoot":"","sources":["../../../src/components/TsMenuButton/TsMenuButton.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -30,7 +30,8 @@ export const TsMenuItem = ({ icon, label, onClick }: TsMenuItemProps) => {
|
|
|
30
30
|
|
|
31
31
|
export const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items }: TsMenuButtonProps) => {
|
|
32
32
|
const [showMenu, setShowMenu] = useState<boolean>(false);
|
|
33
|
-
const
|
|
33
|
+
const containerRef = useClickOutside(() => setShowMenu(false));
|
|
34
|
+
const buttonRef = useRef<HTMLDivElement>(null);
|
|
34
35
|
const menuRef = useRef<HTMLDivElement>(null);
|
|
35
36
|
const [menuStyle, setMenuStyle] = useState<CSSProperties>({});
|
|
36
37
|
|
|
@@ -66,7 +67,7 @@ export const TsMenuButton = ({ menuAlignment = 'bottom-start', mainButton, items
|
|
|
66
67
|
// #########
|
|
67
68
|
// Rendering
|
|
68
69
|
return (
|
|
69
|
-
<div className="ts-menu-button">
|
|
70
|
+
<div className="ts-menu-button" ref={containerRef}>
|
|
70
71
|
<div ref={buttonRef}>{React.cloneElement(mainButton, { onClick: handleShowMenu })}</div>
|
|
71
72
|
{createPortal(menu, document.body)}
|
|
72
73
|
</div>
|