utils: remove unused IContextMenuTargets

This is no longer used since refactoring to use function components.
This commit is contained in:
David Lechner
2021-12-27 12:38:51 -06:00
parent 5f3271aaea
commit 653c03404d
-45
View File
@@ -1,45 +0,0 @@
// SPDX-License-Identifier: MIT
// Copyright (c) 2021 The Pybricks Authors
//
// Alternative to @blueprintjs/core ContextMenuTarget decorator.
import { ContextMenu } from '@blueprintjs/core';
export interface IContextMenuTarget {
renderContextMenu(): JSX.Element;
onContextMenuClose(): void;
}
export function handleContextMenu(
event: React.MouseEvent,
target: IContextMenuTarget,
): void {
// istanbul ignore if: not expected
if (event.defaultPrevented) {
return;
}
event.preventDefault();
const listener = (e: KeyboardEvent) => {
if (e.key === 'Escape') {
// istanbul ignore if: not expected
if (e.defaultPrevented) {
return;
}
e.preventDefault();
ContextMenu.hide();
}
};
window.addEventListener('keydown', listener);
ContextMenu.show(
target.renderContextMenu(),
{ left: event.clientX, top: event.clientY },
() => {
window.removeEventListener('keydown', listener);
target.onContextMenuClose();
},
);
}