(
task: TaskInfo,
plugin: TaskNotesPlugin,
options: TaskCardStateOptions = {}
)
| 124 | } |
| 125 | |
| 126 | export function buildTaskCardRenderState( |
| 127 | task: TaskInfo, |
| 128 | plugin: TaskNotesPlugin, |
| 129 | options: TaskCardStateOptions = {} |
| 130 | ): TaskCardRenderState { |
| 131 | const targetDate = options.targetDate || getDefaultTaskCardTargetDate(task); |
| 132 | const effectiveStatus = task.recurrence |
| 133 | ? getEffectiveTaskStatus(task, targetDate, plugin.statusManager.getCompletedStatuses()[0]) |
| 134 | : task.status; |
| 135 | const layout = options.layout || "default"; |
| 136 | const isCompleted = task.recurrence |
| 137 | ? task.complete_instances?.includes(formatDateForStorage(targetDate)) || false |
| 138 | : plugin.statusManager.isCompletedStatus(effectiveStatus); |
| 139 | const isSkipped = task.recurrence |
| 140 | ? task.skipped_instances?.includes(formatDateForStorage(targetDate)) || false |
| 141 | : false; |
| 142 | const stateWithoutClasses = { |
| 143 | targetDate, |
| 144 | effectiveStatus, |
| 145 | layout, |
| 146 | isCompleted, |
| 147 | isSkipped, |
| 148 | isRecurring: !!task.recurrence, |
| 149 | isMaterializedOccurrence: !!(task.recurrence_parent && task.occurrence_date), |
| 150 | isActivelyTracked: plugin.getActiveTimeSession(task) !== null, |
| 151 | hasDetails: taskHasDetails(task, plugin), |
| 152 | }; |
| 153 | |
| 154 | return { |
| 155 | ...stateWithoutClasses, |
| 156 | cardClasses: buildTaskCardClassNames(task, plugin, stateWithoutClasses), |
| 157 | }; |
| 158 | } |
no test coverage detected