|
- import { RpcClient } from 'webextension-rpc';
- import { contentScriptRpcServer } from '../content_script';
-
- async function handleAnnotateSelection(
- info: browser.contextMenus.OnClickData,
- tab: browser.tabs.Tab,
- ) {
- await new RpcClient<typeof contentScriptRpcServer>({ tabId: tab.id }).func(
- 'annotateSelection',
- )();
- }
-
- function onContextMenuClick(
- info: browser.contextMenus.OnClickData,
- tab?: browser.tabs.Tab,
- ) {
- if (!tab) return;
- switch (info.menuItemId) {
- case 'annotate-selection':
- handleAnnotateSelection(info, tab);
- break;
- }
- }
-
- async function init() {
- // Create context menu item
- browser.contextMenus.create({
- id: 'annotate-selection',
- title: 'Annotate selection',
- contexts: ['selection'],
- });
- browser.contextMenus.onClicked.addListener(onContextMenuClick);
- }
-
- init();
|