redux-devtools/extension/src/background/contextMenus.ts

38 lines
1.0 KiB
TypeScript
Raw Normal View History

2021-08-30 07:54:35 +03:00
import openDevToolsWindow, { DevToolsPosition } from './openWindow';
export function createMenu() {
const menus = [
{ id: 'devtools-left', title: 'To left' },
{ id: 'devtools-right', title: 'To right' },
{ id: 'devtools-bottom', title: 'To bottom' },
{
id: 'devtools-panel',
title: 'Open in a panel (enable in browser settings)',
},
{ id: 'devtools-remote', title: 'Open Remote DevTools' },
];
let shortcuts: { [commandName: string]: string | undefined } = {};
chrome.commands.getAll((commands) => {
commands.forEach(({ name, shortcut }) => {
shortcuts[name!] = shortcut;
});
menus.forEach(({ id, title }) => {
chrome.contextMenus.create({
id: id,
title: title + (shortcuts[id] ? ' (' + shortcuts[id] + ')' : ''),
contexts: ['all'],
});
});
});
}
export function removeMenu() {
chrome.contextMenus.removeAll();
}
chrome.contextMenus.onClicked.addListener(({ menuItemId }) => {
2021-08-30 07:54:35 +03:00
openDevToolsWindow(menuItemId as DevToolsPosition);
});