@ltht-react/menu 2.0.172 → 2.0.174
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/lib/molecules/action-menu-option.d.ts +8 -0
- package/lib/molecules/action-menu-option.js +121 -0
- package/lib/molecules/action-menu-option.js.map +1 -0
- package/lib/molecules/action-menu.d.ts +1 -0
- package/lib/molecules/action-menu.js +2 -12
- package/lib/molecules/action-menu.js.map +1 -1
- package/lib/molecules/menu.js +1 -1
- package/lib/molecules/menu.js.map +1 -1
- package/package.json +7 -6
- package/src/molecules/action-menu-option.tsx +102 -0
- package/src/molecules/action-menu.tsx +13 -43
- package/src/molecules/menu.tsx +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { ActionMenuOption as IActionMenuOption } from './action-menu';
|
|
3
|
+
interface Props extends IActionMenuOption {
|
|
4
|
+
idPrefix: string;
|
|
5
|
+
index: number;
|
|
6
|
+
}
|
|
7
|
+
declare const ActionMenuOption: FC<Props>;
|
|
8
|
+
export default ActionMenuOption;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
50
|
+
var t = {};
|
|
51
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
52
|
+
t[p] = s[p];
|
|
53
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
54
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
55
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
56
|
+
t[p[i]] = s[p[i]];
|
|
57
|
+
}
|
|
58
|
+
return t;
|
|
59
|
+
};
|
|
60
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
61
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
62
|
+
};
|
|
63
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
65
|
+
var react_1 = require("react");
|
|
66
|
+
var icon_1 = __importDefault(require("@ltht-react/icon"));
|
|
67
|
+
var utils_1 = require("@ltht-react/utils");
|
|
68
|
+
var hooks_1 = require("@ltht-react/hooks");
|
|
69
|
+
var menu_1 = require("./menu");
|
|
70
|
+
// Utility function to generate consistent IDs
|
|
71
|
+
var generateActionId = function (idPrefix, text, index) {
|
|
72
|
+
var textId = (0, utils_1.stringToHtmlId)(text);
|
|
73
|
+
return "".concat(idPrefix, "action-menu-item-").concat(textId, "-").concat(index);
|
|
74
|
+
};
|
|
75
|
+
var ActionMenuOption = function (_a) {
|
|
76
|
+
var idPrefix = _a.idPrefix, index = _a.index, text = _a.text, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, actions = _a.actions, _b = _a.exitFullScreenOnClick, exitFullScreenOnClick = _b === void 0 ? false : _b, clickHandler = _a.clickHandler, onClick = _a.onClick, _c = _a.disabled, disabled = _c === void 0 ? false : _c, rest = __rest(_a, ["idPrefix", "index", "text", "leftIcon", "rightIcon", "actions", "exitFullScreenOnClick", "clickHandler", "onClick", "disabled"]);
|
|
77
|
+
var _d = (0, hooks_1.useFullScreen)(), isFullscreen = _d.isFullscreen, exitFullScreen = _d.exitFullScreen;
|
|
78
|
+
// Memoize the action ID to prevent recalculation on every render
|
|
79
|
+
var actionMenuItemId = (0, react_1.useMemo)(function () { return generateActionId(idPrefix, text, index); }, [idPrefix, text, index]);
|
|
80
|
+
// Memoize icons to prevent unnecessary re-renders
|
|
81
|
+
var leftIconElement = (0, react_1.useMemo)(function () { return leftIcon && (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, leftIcon)); }, [leftIcon]);
|
|
82
|
+
var rightIconElement = (0, react_1.useMemo)(function () { return rightIcon && (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, rightIcon)); }, [rightIcon]);
|
|
83
|
+
var handleOnClick = (0, react_1.useCallback)(function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0:
|
|
87
|
+
if (disabled) {
|
|
88
|
+
e.preventDefault();
|
|
89
|
+
return [2 /*return*/];
|
|
90
|
+
}
|
|
91
|
+
if (!clickHandler && !onClick) {
|
|
92
|
+
return [2 /*return*/];
|
|
93
|
+
}
|
|
94
|
+
if (!(exitFullScreenOnClick && isFullscreen)) return [3 /*break*/, 2];
|
|
95
|
+
return [4 /*yield*/, exitFullScreen()];
|
|
96
|
+
case 1:
|
|
97
|
+
_a.sent();
|
|
98
|
+
_a.label = 2;
|
|
99
|
+
case 2:
|
|
100
|
+
// Execute the appropriate handler
|
|
101
|
+
if (clickHandler) {
|
|
102
|
+
clickHandler();
|
|
103
|
+
}
|
|
104
|
+
else if (onClick) {
|
|
105
|
+
onClick(e);
|
|
106
|
+
}
|
|
107
|
+
return [2 /*return*/];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}); }, [disabled, clickHandler, onClick, exitFullScreenOnClick, isFullscreen, exitFullScreen]);
|
|
111
|
+
// Determine if this is a submenu (has actions)
|
|
112
|
+
var isSubmenu = actions && actions.length > 0;
|
|
113
|
+
// Common props for both Menu and MenuItem
|
|
114
|
+
var commonProps = (0, react_1.useMemo)(function () { return (__assign({ id: actionMenuItemId, 'data-testid': actionMenuItemId, label: text, leftIcon: leftIconElement, rightIcon: rightIconElement, disabled: disabled }, rest)); }, [actionMenuItemId, text, leftIconElement, rightIconElement, disabled, rest]);
|
|
115
|
+
if (isSubmenu) {
|
|
116
|
+
return ((0, jsx_runtime_1.jsx)(menu_1.Menu, __assign({}, commonProps, { "aria-label": "".concat(text, " submenu"), "aria-expanded": "false", children: actions.map(function (action, actionIndex) { return ((0, jsx_runtime_1.jsx)(ActionMenuOption, __assign({ idPrefix: "".concat(actionMenuItemId, "_"), index: actionIndex }, action), "".concat(actionMenuItemId, "_menu_item_").concat(actionIndex))); }) })));
|
|
117
|
+
}
|
|
118
|
+
return (0, jsx_runtime_1.jsx)(menu_1.MenuItem, __assign({}, commonProps, { onClick: handleOnClick, "aria-label": text }));
|
|
119
|
+
};
|
|
120
|
+
exports.default = ActionMenuOption;
|
|
121
|
+
//# sourceMappingURL=action-menu-option.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-menu-option.js","sourceRoot":"","sources":["../../src/molecules/action-menu-option.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export interface ActionMenuOption extends HTMLAttributes<HTMLButtonElement> {
|
|
|
24
24
|
leftIcon?: IconProps;
|
|
25
25
|
rightIcon?: IconProps;
|
|
26
26
|
disabled?: boolean;
|
|
27
|
+
exitFullScreenOnClick?: boolean;
|
|
27
28
|
actions?: ActionMenuOption[];
|
|
28
29
|
}
|
|
29
30
|
export declare const DefaultTrigger: IconButtonMenuProps;
|
|
@@ -27,9 +27,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
28
|
exports.DefaultTrigger = void 0;
|
|
29
29
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
-
var icon_1 = __importDefault(require("@ltht-react/icon"));
|
|
31
|
-
var utils_1 = require("@ltht-react/utils");
|
|
32
30
|
var menu_1 = require("./menu");
|
|
31
|
+
var action_menu_option_1 = __importDefault(require("./action-menu-option"));
|
|
33
32
|
exports.DefaultTrigger = {
|
|
34
33
|
type: 'icon',
|
|
35
34
|
iconProps: {
|
|
@@ -40,16 +39,7 @@ exports.DefaultTrigger = {
|
|
|
40
39
|
var ActionMenu = function (_a) {
|
|
41
40
|
var _b = _a.id, id = _b === void 0 ? 'action-menu-button' : _b, actions = _a.actions, disabled = _a.disabled, _c = _a.menuButtonOptions, menuButtonOptions = _c === void 0 ? __assign(__assign({}, exports.DefaultTrigger), { disabled: disabled }) : _c, rest = __rest(_a, ["id", "actions", "disabled", "menuButtonOptions"]);
|
|
42
41
|
var menuItemIdPrefix = id ? "".concat(id, "-") : '';
|
|
43
|
-
return ((0, jsx_runtime_1.jsx)(menu_1.Menu, __assign({ rootTrigger: menuButtonOptions, "data-testid": id }, rest, { children: actions.map(function (action, index) { return
|
|
44
|
-
};
|
|
45
|
-
var renderAction = function (idPrefix, _a, index) {
|
|
46
|
-
var text = _a.text, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, clickHandler = _a.clickHandler, onClick = _a.onClick, actions = _a.actions, rest = __rest(_a, ["text", "leftIcon", "rightIcon", "clickHandler", "onClick", "actions"]);
|
|
47
|
-
var textId = (0, utils_1.stringToHtmlId)(text);
|
|
48
|
-
var actionMenuItemId = "".concat(idPrefix, "action-menu-item-").concat(textId, "-").concat(index);
|
|
49
|
-
if (!!(actions === null || actions === void 0 ? void 0 : actions.length) && actions.length > 0) {
|
|
50
|
-
return ((0, jsx_runtime_1.jsx)(menu_1.Menu, __assign({ id: actionMenuItemId, "data-testid": actionMenuItemId, label: text, leftIcon: leftIcon ? (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, leftIcon)) : null, rightIcon: rightIcon ? (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, rightIcon)) : null }, rest, { children: actions.map(function (action, index) { return renderAction(actionMenuItemId, action, index); }) }), actionMenuItemId));
|
|
51
|
-
}
|
|
52
|
-
return ((0, jsx_runtime_1.jsx)(menu_1.MenuItem, __assign({ id: actionMenuItemId, "data-testid": actionMenuItemId, label: text, leftIcon: leftIcon ? (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, leftIcon)) : null, rightIcon: rightIcon ? (0, jsx_runtime_1.jsx)(icon_1.default, __assign({}, rightIcon)) : null, onClick: clickHandler !== null && clickHandler !== void 0 ? clickHandler : onClick }, rest), actionMenuItemId));
|
|
42
|
+
return ((0, jsx_runtime_1.jsx)(menu_1.Menu, __assign({ rootTrigger: menuButtonOptions, "data-testid": id }, rest, { children: actions.map(function (action, index) { return ((0, jsx_runtime_1.jsx)(action_menu_option_1.default, __assign({ idPrefix: menuItemIdPrefix, index: index }, action), "".concat(menuItemIdPrefix, "_menu_item_").concat(index))); }) })));
|
|
53
43
|
};
|
|
54
44
|
exports.default = ActionMenu;
|
|
55
45
|
//# sourceMappingURL=action-menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-menu.js","sourceRoot":"","sources":["../../src/molecules/action-menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"action-menu.js","sourceRoot":"","sources":["../../src/molecules/action-menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,+BAA6B;AAC7B,4EAA6C;AAgChC,QAAA,cAAc,GAAwB;IACjD,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE;QACT,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,OAAO;KACd;CACF,CAAA;AAED,IAAM,UAAU,GAAe,UAAC,EAM/B;IALC,IAAA,UAAyB,EAAzB,EAAE,mBAAG,oBAAoB,KAAA,EACzB,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,yBAAmD,EAAnD,iBAAiB,yCAAQ,sBAAc,KAAE,QAAQ,UAAA,QAAE,EAChD,IAAI,cALuB,kDAM/B,CADQ;IAEP,IAAM,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,UAAG,EAAE,MAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3C,OAAO,CACL,uBAAC,WAAI,aAAC,WAAW,EAAE,iBAAiB,iBAAe,EAAE,IAAM,IAAI,cAC5D,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,IAAK,OAAA,CAC9B,uBAAC,4BAAU,aAET,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,IACR,MAAM,GAHL,UAAG,gBAAgB,wBAAc,KAAK,CAAE,CAI7C,CACH,EAP+B,CAO/B,CAAC,IACG,CACR,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,UAAU,CAAA"}
|
package/lib/molecules/menu.js
CHANGED
|
@@ -237,7 +237,7 @@ exports.MenuTrigger = (0, react_2.forwardRef)(function (_a, forwardedRef) {
|
|
|
237
237
|
var MenuLabel = function (_a) {
|
|
238
238
|
var leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, label = _a.label, isNested = _a.isNested;
|
|
239
239
|
if (isNested)
|
|
240
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [leftIcon && (0, jsx_runtime_1.jsx)(menu_style_1.LeftIconWrapper, { children: leftIcon }),
|
|
240
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [leftIcon && (0, jsx_runtime_1.jsx)(menu_style_1.LeftIconWrapper, { children: leftIcon }), (0, jsx_runtime_1.jsx)(menu_style_1.TextWrapper, { children: label }), isNested && (0, jsx_runtime_1.jsx)(menu_style_1.RightIconWrapper, { children: "\u25B6" })] }));
|
|
241
241
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [leftIcon, label, rightIcon] }));
|
|
242
242
|
};
|
|
243
243
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/molecules/menu.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/molecules/menu.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ltht-react/menu",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.174",
|
|
4
4
|
"description": "ltht-react styled Menu component.",
|
|
5
5
|
"author": "LTHT",
|
|
6
6
|
"homepage": "",
|
|
@@ -29,11 +29,12 @@
|
|
|
29
29
|
"@emotion/react": "^11.0.0",
|
|
30
30
|
"@emotion/styled": "^11.0.0",
|
|
31
31
|
"@floating-ui/react": "^0.27.15",
|
|
32
|
-
"@ltht-react/button": "^2.0.
|
|
33
|
-
"@ltht-react/
|
|
34
|
-
"@ltht-react/
|
|
35
|
-
"@ltht-react/
|
|
32
|
+
"@ltht-react/button": "^2.0.174",
|
|
33
|
+
"@ltht-react/hooks": "^2.0.174",
|
|
34
|
+
"@ltht-react/icon": "^2.0.174",
|
|
35
|
+
"@ltht-react/styles": "^2.0.174",
|
|
36
|
+
"@ltht-react/utils": "^2.0.174",
|
|
36
37
|
"react": "^18.2.0"
|
|
37
38
|
},
|
|
38
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "b94531d49bfff91a6258cb24fd8a6cce1b4df9d6"
|
|
39
40
|
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { useMemo, MouseEvent, FC, useCallback } from 'react'
|
|
2
|
+
import Icon from '@ltht-react/icon'
|
|
3
|
+
import { stringToHtmlId } from '@ltht-react/utils'
|
|
4
|
+
import { useFullScreen } from '@ltht-react/hooks'
|
|
5
|
+
import { ActionMenuOption as IActionMenuOption } from './action-menu'
|
|
6
|
+
import { Menu, MenuItem } from './menu'
|
|
7
|
+
|
|
8
|
+
interface Props extends IActionMenuOption {
|
|
9
|
+
idPrefix: string
|
|
10
|
+
index: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Utility function to generate consistent IDs
|
|
14
|
+
const generateActionId = (idPrefix: string, text: string, index: number): string => {
|
|
15
|
+
const textId = stringToHtmlId(text)
|
|
16
|
+
return `${idPrefix}action-menu-item-${textId}-${index}`
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const ActionMenuOption: FC<Props> = ({
|
|
20
|
+
idPrefix,
|
|
21
|
+
index,
|
|
22
|
+
text,
|
|
23
|
+
leftIcon,
|
|
24
|
+
rightIcon,
|
|
25
|
+
actions,
|
|
26
|
+
exitFullScreenOnClick = false,
|
|
27
|
+
clickHandler,
|
|
28
|
+
onClick,
|
|
29
|
+
disabled = false,
|
|
30
|
+
...rest
|
|
31
|
+
}) => {
|
|
32
|
+
const { isFullscreen, exitFullScreen } = useFullScreen()
|
|
33
|
+
|
|
34
|
+
// Memoize the action ID to prevent recalculation on every render
|
|
35
|
+
const actionMenuItemId = useMemo(() => generateActionId(idPrefix, text, index), [idPrefix, text, index])
|
|
36
|
+
|
|
37
|
+
// Memoize icons to prevent unnecessary re-renders
|
|
38
|
+
const leftIconElement = useMemo(() => leftIcon && <Icon {...leftIcon} />, [leftIcon])
|
|
39
|
+
|
|
40
|
+
const rightIconElement = useMemo(() => rightIcon && <Icon {...rightIcon} />, [rightIcon])
|
|
41
|
+
|
|
42
|
+
const handleOnClick = useCallback(
|
|
43
|
+
async (e: MouseEvent<HTMLButtonElement>) => {
|
|
44
|
+
if (disabled) {
|
|
45
|
+
e.preventDefault()
|
|
46
|
+
return
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (!clickHandler && !onClick) {
|
|
50
|
+
return
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (exitFullScreenOnClick && isFullscreen) {
|
|
54
|
+
await exitFullScreen()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Execute the appropriate handler
|
|
58
|
+
if (clickHandler) {
|
|
59
|
+
clickHandler()
|
|
60
|
+
} else if (onClick) {
|
|
61
|
+
onClick(e)
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
[disabled, clickHandler, onClick, exitFullScreenOnClick, isFullscreen, exitFullScreen]
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
// Determine if this is a submenu (has actions)
|
|
68
|
+
const isSubmenu = actions && actions.length > 0
|
|
69
|
+
|
|
70
|
+
// Common props for both Menu and MenuItem
|
|
71
|
+
const commonProps = useMemo(
|
|
72
|
+
() => ({
|
|
73
|
+
id: actionMenuItemId,
|
|
74
|
+
'data-testid': actionMenuItemId,
|
|
75
|
+
label: text,
|
|
76
|
+
leftIcon: leftIconElement,
|
|
77
|
+
rightIcon: rightIconElement,
|
|
78
|
+
disabled,
|
|
79
|
+
...rest,
|
|
80
|
+
}),
|
|
81
|
+
[actionMenuItemId, text, leftIconElement, rightIconElement, disabled, rest]
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
if (isSubmenu) {
|
|
85
|
+
return (
|
|
86
|
+
<Menu {...commonProps} aria-label={`${text} submenu`} aria-expanded="false">
|
|
87
|
+
{actions.map((action, actionIndex) => (
|
|
88
|
+
<ActionMenuOption
|
|
89
|
+
key={`${actionMenuItemId}_menu_item_${actionIndex}`}
|
|
90
|
+
idPrefix={`${actionMenuItemId}_`}
|
|
91
|
+
index={actionIndex}
|
|
92
|
+
{...action}
|
|
93
|
+
/>
|
|
94
|
+
))}
|
|
95
|
+
</Menu>
|
|
96
|
+
)
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return <MenuItem {...commonProps} onClick={handleOnClick} aria-label={text} />
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export default ActionMenuOption
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { FC, HTMLAttributes
|
|
2
|
-
import
|
|
3
|
-
import { stringToHtmlId } from '@ltht-react/utils'
|
|
1
|
+
import { FC, HTMLAttributes } from 'react'
|
|
2
|
+
import { IconProps } from '@ltht-react/icon'
|
|
4
3
|
import { ButtonProps } from '@ltht-react/button'
|
|
5
4
|
|
|
6
|
-
import { Menu
|
|
5
|
+
import { Menu } from './menu'
|
|
6
|
+
import MenuOption from './action-menu-option'
|
|
7
7
|
|
|
8
8
|
interface IProps<T extends HTMLElement = HTMLElement> extends HTMLAttributes<HTMLButtonElement> {
|
|
9
9
|
actions: ActionMenuOption[]
|
|
@@ -31,6 +31,7 @@ export interface ActionMenuOption extends HTMLAttributes<HTMLButtonElement> {
|
|
|
31
31
|
leftIcon?: IconProps
|
|
32
32
|
rightIcon?: IconProps
|
|
33
33
|
disabled?: boolean
|
|
34
|
+
exitFullScreenOnClick?: boolean
|
|
34
35
|
actions?: ActionMenuOption[]
|
|
35
36
|
}
|
|
36
37
|
|
|
@@ -53,47 +54,16 @@ const ActionMenu: FC<IProps> = ({
|
|
|
53
54
|
|
|
54
55
|
return (
|
|
55
56
|
<Menu rootTrigger={menuButtonOptions} data-testid={id} {...rest}>
|
|
56
|
-
{actions.map((action, index) =>
|
|
57
|
+
{actions.map((action, index) => (
|
|
58
|
+
<MenuOption
|
|
59
|
+
key={`${menuItemIdPrefix}_menu_item_${index}`}
|
|
60
|
+
idPrefix={menuItemIdPrefix}
|
|
61
|
+
index={index}
|
|
62
|
+
{...action}
|
|
63
|
+
/>
|
|
64
|
+
))}
|
|
57
65
|
</Menu>
|
|
58
66
|
)
|
|
59
67
|
}
|
|
60
68
|
|
|
61
|
-
const renderAction = (
|
|
62
|
-
idPrefix: string,
|
|
63
|
-
{ text, leftIcon, rightIcon, clickHandler, onClick, actions, ...rest }: ActionMenuOption,
|
|
64
|
-
index: number
|
|
65
|
-
): ReactNode => {
|
|
66
|
-
const textId = stringToHtmlId(text)
|
|
67
|
-
const actionMenuItemId = `${idPrefix}action-menu-item-${textId}-${index}`
|
|
68
|
-
|
|
69
|
-
if (!!actions?.length && actions.length > 0) {
|
|
70
|
-
return (
|
|
71
|
-
<Menu
|
|
72
|
-
key={actionMenuItemId}
|
|
73
|
-
id={actionMenuItemId}
|
|
74
|
-
data-testid={actionMenuItemId}
|
|
75
|
-
label={text}
|
|
76
|
-
leftIcon={leftIcon ? <Icon {...leftIcon} /> : null}
|
|
77
|
-
rightIcon={rightIcon ? <Icon {...rightIcon} /> : null}
|
|
78
|
-
{...rest}
|
|
79
|
-
>
|
|
80
|
-
{actions.map((action, index) => renderAction(actionMenuItemId, action, index))}
|
|
81
|
-
</Menu>
|
|
82
|
-
)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
return (
|
|
86
|
-
<MenuItem
|
|
87
|
-
key={actionMenuItemId}
|
|
88
|
-
id={actionMenuItemId}
|
|
89
|
-
data-testid={actionMenuItemId}
|
|
90
|
-
label={text}
|
|
91
|
-
leftIcon={leftIcon ? <Icon {...leftIcon} /> : null}
|
|
92
|
-
rightIcon={rightIcon ? <Icon {...rightIcon} /> : null}
|
|
93
|
-
onClick={clickHandler ?? onClick}
|
|
94
|
-
{...rest}
|
|
95
|
-
/>
|
|
96
|
-
)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
69
|
export default ActionMenu
|
package/src/molecules/menu.tsx
CHANGED
|
@@ -398,7 +398,7 @@ const MenuLabel = ({ leftIcon, rightIcon, label, isNested }: MenuLabelProps) =>
|
|
|
398
398
|
return (
|
|
399
399
|
<>
|
|
400
400
|
{leftIcon && <LeftIconWrapper>{leftIcon}</LeftIconWrapper>}
|
|
401
|
-
|
|
401
|
+
<TextWrapper>{label}</TextWrapper>
|
|
402
402
|
{isNested && <RightIconWrapper>▶</RightIconWrapper>}
|
|
403
403
|
</>
|
|
404
404
|
)
|