MCPcopy
hub / github.com/callumalpass/tasknotes / buildMenu

Method buildMenu

src/components/TaskContextMenu.ts:168–842  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

166 }
167
168 private buildMenu(): void {
169 const { task, plugin } = this.options;
170 const hasPromotedOccurrenceControls = this.addPromotedOccurrenceControls(task, plugin);
171
172 // Status submenu
173 this.menu.addItem((item) => {
174 item.setTitle(this.t("contextMenus.task.status"));
175 item.setIcon("circle");
176
177 const submenu = getSubmenu(item);
178 this.addStatusOptions(submenu, task, plugin);
179 });
180
181 this.menu.addSeparator();
182
183 // Priority submenu
184 this.menu.addItem((item) => {
185 item.setTitle(this.t("contextMenus.task.priority"));
186 item.setIcon("star");
187
188 const submenu = getSubmenu(item);
189 this.addPriorityOptions(submenu, task, plugin);
190 });
191
192 // Tags submenu
193 this.menu.addItem((item) => {
194 item.setTitle(this.t("contextMenus.task.tags"));
195 item.setIcon("tags");
196
197 const submenu = getSubmenu(item);
198 this.addTagOptions(submenu, task, plugin);
199 });
200
201 this.menu.addSeparator();
202
203 // Due Date submenu
204 this.menu.addItem((item) => {
205 item.setTitle(this.t("contextMenus.task.dueDate"));
206 item.setIcon("calendar");
207
208 const submenu = getSubmenu(item);
209 this.addDateOptions(
210 submenu,
211 task.due,
212 async (value: string | null) => {
213 try {
214 await plugin.updateTaskProperty(task, "due", value || undefined);
215 this.options.onUpdate?.();
216 } catch (error) {
217 const errorMessage = error instanceof Error ? error.message : String(error);
218 tasknotesLogger.error("Error updating task due date:", {
219 category: "validation",
220 operation: "updating-task-due-date",
221 details: { taskPath: task.path },
222 error: errorMessage,
223 });
224 new Notice(
225 this.t("contextMenus.task.notices.updateDueDateFailure", {

Callers 1

constructorMethod · 0.95

Calls 15

tMethod · 0.95
addStatusOptionsMethod · 0.95
addPriorityOptionsMethod · 0.95
addTagOptionsMethod · 0.95
addDateOptionsMethod · 0.95

Tested by

no test coverage detected