@mongodb-js/compass-context-menu 0.2.9 → 0.2.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-menu-provider.d.ts","sourceRoot":"","sources":["../src/context-menu-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAOjB,eAAO,MAAM,kBAAkB,8CAE9B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,QAAgB,EAChB,QAAQ,EACR,WAAW,EAAE,OAAO,EACpB,iBAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,gBAAgB,GAAG;YAAE,KAAK,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;KAChD,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;CAClE,
|
|
1
|
+
{"version":3,"file":"context-menu-provider.d.ts","sourceRoot":"","sources":["../src/context-menu-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAOjB,eAAO,MAAM,kBAAkB,8CAE9B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,QAAgB,EAChB,QAAQ,EACR,WAAW,EAAE,OAAO,EACpB,iBAAiB,GAClB,EAAE;IACD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC;QAC/B,IAAI,EAAE,gBAAgB,GAAG;YAAE,KAAK,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;KAChD,CAAC,CAAC;IACH,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,oBAAoB,EAAE,KAAK,IAAI,CAAC;CAClE,qBAuGA"}
|
|
@@ -42,6 +42,7 @@ exports.ContextMenuContext = (0, react_1.createContext)(null);
|
|
|
42
42
|
function ContextMenuProvider({ disabled = false, children, menuWrapper: Wrapper, onContextMenuOpen, }) {
|
|
43
43
|
// Check if there's already a parent context menu provider
|
|
44
44
|
const parentContext = (0, react_1.useContext)(exports.ContextMenuContext);
|
|
45
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
45
46
|
const [menu, setMenu] = (0, react_1.useState)({
|
|
46
47
|
isOpen: false,
|
|
47
48
|
itemGroups: [],
|
|
@@ -56,15 +57,16 @@ function ContextMenuProvider({ disabled = false, children, menuWrapper: Wrapper,
|
|
|
56
57
|
}
|
|
57
58
|
}, [close]);
|
|
58
59
|
(0, react_1.useEffect)(() => {
|
|
59
|
-
//
|
|
60
|
-
|
|
60
|
+
// We skip registering listeners when parentContext is known to avoid registering multiple (nested) listeners
|
|
61
|
+
const { current: container } = containerRef;
|
|
62
|
+
if (parentContext || disabled || !container)
|
|
61
63
|
return;
|
|
62
64
|
function handleContextMenu(event) {
|
|
63
|
-
event.preventDefault();
|
|
64
65
|
const itemGroups = (0, context_menu_content_1.getContextMenuContent)(event);
|
|
65
|
-
if (itemGroups.length === 0) {
|
|
66
|
+
if (itemGroups.length === 0 || event.shiftKey) {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
69
|
+
event.preventDefault();
|
|
68
70
|
onContextMenuOpenRef.current?.(itemGroups);
|
|
69
71
|
setMenu({
|
|
70
72
|
isOpen: true,
|
|
@@ -75,7 +77,7 @@ function ContextMenuProvider({ disabled = false, children, menuWrapper: Wrapper,
|
|
|
75
77
|
},
|
|
76
78
|
});
|
|
77
79
|
}
|
|
78
|
-
|
|
80
|
+
container.addEventListener('contextmenu', handleContextMenu);
|
|
79
81
|
window.addEventListener('resize', handleClosingEvent);
|
|
80
82
|
window.addEventListener('scroll', (e) => {
|
|
81
83
|
const isCompassContextMenu = e.target instanceof HTMLElement &&
|
|
@@ -84,13 +86,19 @@ function ContextMenuProvider({ disabled = false, children, menuWrapper: Wrapper,
|
|
|
84
86
|
handleClosingEvent(e);
|
|
85
87
|
}, { capture: true });
|
|
86
88
|
return () => {
|
|
87
|
-
|
|
89
|
+
container.removeEventListener('contextmenu', handleContextMenu);
|
|
88
90
|
window.removeEventListener('resize', handleClosingEvent);
|
|
89
91
|
window.removeEventListener('scroll', handleClosingEvent, {
|
|
90
92
|
capture: true,
|
|
91
93
|
});
|
|
92
94
|
};
|
|
93
|
-
}, [
|
|
95
|
+
}, [
|
|
96
|
+
disabled,
|
|
97
|
+
containerRef,
|
|
98
|
+
handleClosingEvent,
|
|
99
|
+
onContextMenuOpenRef,
|
|
100
|
+
parentContext,
|
|
101
|
+
]);
|
|
94
102
|
const value = (0, react_1.useMemo)(() => ({
|
|
95
103
|
close,
|
|
96
104
|
}), [close]);
|
|
@@ -99,7 +107,7 @@ function ContextMenuProvider({ disabled = false, children, menuWrapper: Wrapper,
|
|
|
99
107
|
return react_1.default.createElement(react_1.default.Fragment, null, children);
|
|
100
108
|
}
|
|
101
109
|
return (react_1.default.createElement(exports.ContextMenuContext.Provider, { value: value },
|
|
102
|
-
children,
|
|
110
|
+
react_1.default.createElement("div", { ref: containerRef, "data-testid": "context-menu-children-container", style: { display: 'contents' } }, children),
|
|
103
111
|
react_1.default.createElement(Wrapper, { menu: { ...menu, close } })));
|
|
104
112
|
}
|
|
105
113
|
//# sourceMappingURL=context-menu-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-menu-provider.js","sourceRoot":"","sources":["../src/context-menu-provider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,
|
|
1
|
+
{"version":3,"file":"context-menu-provider.js","sourceRoot":"","sources":["../src/context-menu-provider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kDAmHC;AA5ID,+CAQe;AAOf,iEAGgC;AAChC,qCAAgD;AAEnC,QAAA,kBAAkB,GAAG,IAAA,qBAAa,EAC7C,IAAI,CACL,CAAC;AAEF,SAAgB,mBAAmB,CAAC,EAClC,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,WAAW,EAAE,OAAO,EACpB,iBAAiB,GAQlB;IACC,0DAA0D;IAC1D,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,0BAAkB,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,IAAA,cAAM,EAAwB,IAAI,CAAC,CAAC;IAEzD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAmB;QACjD,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;KACzB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAA,mBAAW,EACvB,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EACrD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,oBAAoB,GAAG,IAAA,cAAM,EAAC,iBAAiB,CAAC,CAAC;IACvD,oBAAoB,CAAC,OAAO,GAAG,iBAAiB,CAAC;IAEjD,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,CAAC,KAAY,EAAE,EAAE;QACf,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;YAC5B,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,6GAA6G;QAC7G,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;QAC5C,IAAI,aAAa,IAAI,QAAQ,IAAI,CAAC,SAAS;YAAE,OAAO;QAEpD,SAAS,iBAAiB,CAAC,KAAiB;YAC1C,MAAM,UAAU,GAAG,IAAA,4CAAqB,EAAC,KAA2B,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC9C,OAAO;YACT,CAAC;YAED,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,oBAAoB,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YAE3C,OAAO,CAAC;gBACN,MAAM,EAAE,IAAI;gBACZ,UAAU;gBACV,QAAQ,EAAE;oBACR,CAAC,EAAE,KAAK,CAAC,OAAO;oBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;iBACjB;aACF,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC7D,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,CAAC,CAAC,EAAE,EAAE;YACJ,MAAM,oBAAoB,GACxB,CAAC,CAAC,MAAM,YAAY,WAAW;gBAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAAoB,CAAC,CAAC;YACpD,IAAI,CAAC,oBAAoB;gBAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,mBAAmB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YAChE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YACzD,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE;gBACvD,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,QAAQ;QACR,YAAY;QACZ,kBAAkB;QAClB,oBAAoB;QACpB,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;KACN,CAAC,EACF,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,wEAAwE;IACxE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,8DAAG,QAAQ,CAAI,CAAC;IACzB,CAAC;IAED,OAAO,CACL,8BAAC,0BAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK;QACvC,uCACE,GAAG,EAAE,YAAY,iBACL,iCAAiC,EAC7C,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,IAE7B,QAAQ,CACL;QACN,8BAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAI,CACT,CAC/B,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"email": "compass@mongodb.com"
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://github.com/mongodb-js/compass",
|
|
16
|
-
"version": "0.2.
|
|
16
|
+
"version": "0.2.10",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "https://github.com/mongodb-js/compass.git"
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@mongodb-js/eslint-config-compass": "^1.4.10",
|
|
57
57
|
"@mongodb-js/mocha-config-compass": "^1.7.1",
|
|
58
58
|
"@mongodb-js/prettier-config-compass": "^1.2.8",
|
|
59
|
-
"@mongodb-js/testing-library-compass": "^1.3.
|
|
59
|
+
"@mongodb-js/testing-library-compass": "^1.3.14",
|
|
60
60
|
"@mongodb-js/tsconfig-compass": "^1.2.10",
|
|
61
61
|
"@types/chai": "^4.2.21",
|
|
62
62
|
"@types/mocha": "^9.0.0",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"sinon": "^9.2.3",
|
|
71
71
|
"typescript": "^5.9.2"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "3566310d827fff23154a5b387d20215f4f3c155a"
|
|
74
74
|
}
|