MCPcopy
hub / github.com/CopyTranslator/CopyTranslator / actionToMenuItem

Method actionToMenuItem

src/main/menu-manager.ts:60–93  ·  view source on GitHub ↗
(action: ActionView)

Source from the content-addressed store, hash-verified

58 }
59
60 actionToMenuItem(action: ActionView): MenuAction {
61 const t = store.getters.locale;
62 const menuItem: MenuAction = {
63 ...action,
64 };
65 menuItem.label = t[menuItem.id];
66 if (menuItem.role) {
67 return menuItem;
68 }
69 if (menuItem.type == "checkbox") {
70 menuItem.checked = this.config.get(menuItem.id as Identifier);
71 }
72 if (menuItem.type == "checkbox" || menuItem.type == "normal") {
73 menuItem.click = this.getCallback(menuItem.id);
74 }
75 if (menuItem.submenu) {
76 const value = this.config.get(menuItem.id as Identifier);
77 for (const subMenuItem of menuItem.submenu) {
78 if (subMenuItem.type == "checkbox") {
79 const { identifier, param } = decompose(subMenuItem.id);
80 if (action.actionType == "multi_select") {
81 subMenuItem.checked = (<Array<string>>value).includes(param);
82 } else {
83 subMenuItem.checked = param == value;
84 }
85 } else if (subMenuItem.type == "normal") {
86 } else {
87 throw "invalid submenu item type";
88 }
89 subMenuItem.click = this.getCallback(subMenuItem.id);
90 }
91 }
92 return menuItem;
93 }
94
95 getMenu(name: MenuActionType) {
96 const contain = this.act.getKeys(name);

Callers 1

getMenuMethod · 0.95

Calls 3

getCallbackMethod · 0.95
decomposeFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected