MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / openTaskMenu

Function openTaskMenu

packages/app-core/src/components/TasksCalendar.tsx:233–266  ·  view source on GitHub ↗
(e: React.MouseEvent, task: VaultTask)

Source from the content-addressed store, hash-verified

231 // Right-click a task: reschedule presets, move into a day's note, inline edit,
232 // delete. (Drag still offers the move/set-due choice.)
233 const openTaskMenu = (e: React.MouseEvent, task: VaultTask): void => {
234 e.preventDefault()
235 e.stopPropagation()
236 const reschedule = (iso: string | null): void =>
237 void applyTaskMutation(task, { kind: 'set-due', due: iso })
238 const items: ContextMenuItem[] = [
239 { label: 'Due today', hint: addDaysIso(0), onSelect: () => reschedule(addDaysIso(0)) },
240 { label: 'Due tomorrow', hint: addDaysIso(1), onSelect: () => reschedule(addDaysIso(1)) },
241 { label: 'Due next week', hint: addDaysIso(7), onSelect: () => reschedule(addDaysIso(7)) }
242 ]
243 if (task.due && !task.dueInferred) {
244 items.push({ label: 'Clear due date', onSelect: () => reschedule(null) })
245 }
246 items.push(
247 { kind: 'separator' },
248 {
249 label: 'Move to its day’s note',
250 disabled: !task.due,
251 onSelect: () => {
252 if (task.due) onMoveTask(task, task.due)
253 }
254 },
255 {
256 label: 'Edit',
257 onSelect: () => {
258 setEditingTaskId(task.id)
259 setEditValue(taskTail(task))
260 }
261 },
262 { kind: 'separator' },
263 { label: 'Delete', danger: true, onSelect: () => void deleteTaskFromList(task) }
264 )
265 setMenu({ x: e.clientX, y: e.clientY, items })
266 }
267
268 const renderTask = (
269 task: VaultTask,

Callers 2

renderTaskRowFunction · 0.85
renderTaskFunction · 0.85

Calls 3

addDaysIsoFunction · 0.85
rescheduleFunction · 0.70
taskTailFunction · 0.70

Tested by

no test coverage detected