( task: TaskInfo, context: CalendarTaskEventContext )
| 294 | } |
| 295 | |
| 296 | export function createTimeEntryTaskEvents( |
| 297 | task: TaskInfo, |
| 298 | context: CalendarTaskEventContext |
| 299 | ): CalendarTaskEvent[] { |
| 300 | if (!task.timeEntries) return []; |
| 301 | |
| 302 | const isCompleted = context.isCompletedStatus(task.status); |
| 303 | |
| 304 | return task.timeEntries |
| 305 | .map((entry, index) => ({ entry, index })) |
| 306 | .filter(({ entry }) => hasFinishedTimeEntry(entry)) |
| 307 | .map(({ entry, index }) => ({ |
| 308 | id: `timeentry-${task.path}-${index}`, |
| 309 | title: task.title, |
| 310 | start: entry.startTime, |
| 311 | end: entry.endTime, |
| 312 | allDay: false, |
| 313 | editable: true, |
| 314 | extendedProps: { |
| 315 | taskInfo: task, |
| 316 | eventType: "timeEntry" as const, |
| 317 | isCompleted, |
| 318 | timeEntryIndex: index, |
| 319 | }, |
| 320 | })); |
| 321 | } |
no test coverage detected