MCPcopy Create free account
hub / github.com/DTStack/molecule / useContextMenu

Function useContextMenu

src/components/contextMenu/index.tsx:12–47  ·  view source on GitHub ↗
(
    props: IContextMenuProps
)

Source from the content-addressed store, hash-verified

10export interface IContextMenu extends IContextView {}
11
12export function useContextMenu(
13 props: IContextMenuProps
14): IContextMenu | undefined {
15 const { anchor, render } = props;
16
17 if (!anchor) {
18 return undefined;
19 }
20
21 const contextView = useContextView({
22 render,
23 });
24
25 const onContextMenu = (e: MouseEvent) => {
26 // ONLY works over the anchor ele
27 if (e.target === e.currentTarget) {
28 e.preventDefault();
29 contextView!.show(
30 {
31 x: e.clientX,
32 y: e.clientY,
33 },
34 render
35 );
36 }
37 };
38
39 anchor.addEventListener('contextmenu', onContextMenu);
40
41 const dispose = () => {
42 contextView!.hide();
43 anchor.removeEventListener('contextmenu', onContextMenu);
44 };
45
46 return { ...contextView, dispose };
47}

Callers 5

initContextMenuFunction · 0.90
StatusBarFunction · 0.90
ActionBarItemFunction · 0.90
ContextMenuDemoFunction · 0.90

Calls 1

useContextViewFunction · 0.90

Tested by

no test coverage detected