@opensumi/ide-menu-bar 2.22.10 → 2.23.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-bar.view.d.ts","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AA8E1B,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"menu-bar.view.d.ts","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AA8E1B,eAAO,MAAM,OAAO,iCAiDlB,CAAC;AAIH,KAAK,4BAA4B,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AAEpF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAK1E,CAAC;AAIF,eAAO,MAAM,oBAAoB,uGAA8E,CAAC"}
|
|
@@ -54,14 +54,27 @@ exports.MenuBar = (0, mobx_react_lite_1.observer)(() => {
|
|
|
54
54
|
const menubarStore = (0, ide_core_browser_1.useInjectable)(menu_bar_store_1.MenubarStore);
|
|
55
55
|
const componentRegistry = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.ComponentRegistry);
|
|
56
56
|
const [focusMode, setFocusMode] = react_1.default.useState(false);
|
|
57
|
+
const relatedTarget = react_1.default.useRef();
|
|
58
|
+
const handleMenubarFocusIn = react_1.default.useCallback((e) => {
|
|
59
|
+
if (!relatedTarget.current && e.relatedTarget) {
|
|
60
|
+
relatedTarget.current = e.relatedTarget;
|
|
61
|
+
}
|
|
62
|
+
}, []);
|
|
63
|
+
const handleMenuItemClick = react_1.default.useCallback(() => {
|
|
64
|
+
if (relatedTarget.current) {
|
|
65
|
+
relatedTarget.current.focus();
|
|
66
|
+
relatedTarget.current = undefined;
|
|
67
|
+
}
|
|
68
|
+
setFocusMode(false);
|
|
69
|
+
}, [focusMode]);
|
|
57
70
|
const handleMouseLeave = react_1.default.useCallback(() => {
|
|
58
71
|
// 只有 focus 为 true 的时候, mouse leave 才会将其置为 false
|
|
59
72
|
setFocusMode(false);
|
|
60
73
|
}, [focusMode]);
|
|
61
74
|
const LogoIcon = (_a = componentRegistry.getComponentRegistryInfo('@opensumi/ide-menu-bar-logo')) === null || _a === void 0 ? void 0 : _a.views[0].component;
|
|
62
|
-
return (react_1.default.createElement(ide_components_1.ClickOutside, { className: menu_bar_module_less_1.default.menubars, style: { height: constants_1.LAYOUT_VIEW_SIZE.MENUBAR_HEIGHT }, mouseEvents: ['click', 'contextmenu'], onOutsideClick: handleMouseLeave },
|
|
75
|
+
return (react_1.default.createElement(ide_components_1.ClickOutside, { className: menu_bar_module_less_1.default.menubars, style: { height: constants_1.LAYOUT_VIEW_SIZE.MENUBAR_HEIGHT }, mouseEvents: ['click', 'contextmenu'], tabIndex: -1, onFocus: handleMenubarFocusIn, onOutsideClick: handleMouseLeave },
|
|
63
76
|
LogoIcon ? react_1.default.createElement(LogoIcon, null) : react_1.default.createElement("div", { className: menu_bar_module_less_1.default.logoIconEmpty }),
|
|
64
|
-
menubarStore.menubarItems.map(({ id, label }) => (react_1.default.createElement(MenubarItem, { key: id, id: id, label: label, focusMode: focusMode, afterMenuClick:
|
|
77
|
+
menubarStore.menubarItems.map(({ id, label }) => (react_1.default.createElement(MenubarItem, { key: id, id: id, label: label, focusMode: focusMode, afterMenuClick: handleMenuItemClick, afterMenubarClick: () => setFocusMode((r) => !r) })))));
|
|
65
78
|
});
|
|
66
79
|
exports.MenuBar.displayName = 'MenuBar';
|
|
67
80
|
const MenuBarMixToolbarAction = (props) => (react_1.default.createElement("div", { className: (0, classnames_1.default)(menu_bar_module_less_1.default.menubarWrapper, props.className) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-bar.view.js","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":";;;;AAAA,oEAA6B;AAC7B,qDAA2C;AAC3C,0DAA0B;AAE1B,6DAAwD;AACxD,oEAAiE;AACjE,8EAA2E;AAC3E,iEAA4F;AAC5F,+EAAmF;AACnF,+EAAmF;AAGnF,0FAA4C;AAC5C,qDAAgD;AAEhD,MAAM,WAAW,GAAG,IAAA,0BAAQ,EAM1B,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,EAAE;IAChE,MAAM,YAAY,GAAG,IAAA,gCAAa,EAAe,6BAAY,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE/D,MAAM,sBAAsB,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACpD,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,SAAS,EAAE;YACb,WAAW,CAAC,IAAI,CAAC,CAAC;SACnB;aAAM;YACL,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,iBAAiB,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAET,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,eAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,kCAAkC;QAClC,IAAI,SAAS,EAAE;YACb,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;SACrC;IACH,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpB,MAAM,wBAAwB,GAAG,CAAC,OAAgB,EAAE,EAAE;QACpD,WAAW,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,OAAO,CACL,8BAAC,mBAAQ,IACP,SAAS,EAAE,SAAS,EACpB,cAAc,EAAC,EAAE,EACjB,KAAK,EAAE;YACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACf,EACD,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE,wBAAwB,EACzC,OAAO,EAAE,8BAAC,wBAAc,IAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,GAAI,EACxE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAEnD,uCACE,SAAS,EAAE,IAAA,oBAAG,EAAC,8BAAM,CAAC,OAAO,EAAE,EAAE,CAAC,8BAAM,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EACnE,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,sBAAsB,IAE9B,KAAK,CACF,CACG,CACZ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,uCAAuC;AACvC,4CAA4C;AAC5C,iCAAiC;AACjC,8BAA8B;AACjB,QAAA,OAAO,GAAG,IAAA,0BAAQ,EAAC,GAAG,EAAE;;IACnC,MAAM,YAAY,GAAG,IAAA,gCAAa,EAAe,6BAAY,CAAC,CAAC;IAC/D,MAAM,iBAAiB,GAAsB,IAAA,gCAAa,EAAC,oCAAiB,CAAC,CAAC;IAC9E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"menu-bar.view.js","sourceRoot":"","sources":["../../src/browser/menu-bar.view.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-menu-bar",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.23.0",
|
|
4
4
|
"description": "@opensumi/ide-menu-bar",
|
|
5
5
|
"files": [
|
|
6
6
|
"lib",
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
"url": "git@github.com:opensumi/core.git"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@opensumi/ide-core-common": "2.
|
|
21
|
+
"@opensumi/ide-core-common": "2.23.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@opensumi/ide-components": "2.
|
|
25
|
-
"@opensumi/ide-core-browser": "2.
|
|
24
|
+
"@opensumi/ide-components": "2.23.0",
|
|
25
|
+
"@opensumi/ide-core-browser": "2.23.0",
|
|
26
26
|
"@opensumi/ide-dev-tool": "1.3.1"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "5d8e4fcf717531446c838d142f7601699fd50d0f"
|
|
29
29
|
}
|
|
@@ -82,6 +82,21 @@ export const MenuBar = observer(() => {
|
|
|
82
82
|
const menubarStore = useInjectable<MenubarStore>(MenubarStore);
|
|
83
83
|
const componentRegistry: ComponentRegistry = useInjectable(ComponentRegistry);
|
|
84
84
|
const [focusMode, setFocusMode] = React.useState(false);
|
|
85
|
+
const relatedTarget = React.useRef<HTMLElement>();
|
|
86
|
+
|
|
87
|
+
const handleMenubarFocusIn = React.useCallback((e: React.FocusEvent<HTMLDivElement>) => {
|
|
88
|
+
if (!relatedTarget.current && e.relatedTarget) {
|
|
89
|
+
relatedTarget.current = e.relatedTarget as HTMLElement;
|
|
90
|
+
}
|
|
91
|
+
}, []);
|
|
92
|
+
|
|
93
|
+
const handleMenuItemClick = React.useCallback(() => {
|
|
94
|
+
if (relatedTarget.current) {
|
|
95
|
+
relatedTarget.current.focus();
|
|
96
|
+
relatedTarget.current = undefined;
|
|
97
|
+
}
|
|
98
|
+
setFocusMode(false);
|
|
99
|
+
}, [focusMode]);
|
|
85
100
|
|
|
86
101
|
const handleMouseLeave = React.useCallback(() => {
|
|
87
102
|
// 只有 focus 为 true 的时候, mouse leave 才会将其置为 false
|
|
@@ -95,6 +110,8 @@ export const MenuBar = observer(() => {
|
|
|
95
110
|
className={styles.menubars}
|
|
96
111
|
style={{ height: LAYOUT_VIEW_SIZE.MENUBAR_HEIGHT }}
|
|
97
112
|
mouseEvents={['click', 'contextmenu']}
|
|
113
|
+
tabIndex={-1} // make focus event implement
|
|
114
|
+
onFocus={handleMenubarFocusIn}
|
|
98
115
|
onOutsideClick={handleMouseLeave}
|
|
99
116
|
>
|
|
100
117
|
{LogoIcon ? <LogoIcon /> : <div className={styles.logoIconEmpty}></div>}
|
|
@@ -104,7 +121,7 @@ export const MenuBar = observer(() => {
|
|
|
104
121
|
id={id}
|
|
105
122
|
label={label}
|
|
106
123
|
focusMode={focusMode}
|
|
107
|
-
afterMenuClick={
|
|
124
|
+
afterMenuClick={handleMenuItemClick}
|
|
108
125
|
afterMenubarClick={() => setFocusMode((r) => !r)}
|
|
109
126
|
/>
|
|
110
127
|
))}
|