MCPcopy Index your code
hub / github.com/callumalpass/tasknotes / buildTaskCardRenderState

Function buildTaskCardRenderState

src/ui/taskCardState.ts:126–158  ·  view source on GitHub ↗
(
	task: TaskInfo,
	plugin: TaskNotesPlugin,
	options: TaskCardStateOptions = {}
)

Source from the content-addressed store, hash-verified

124}
125
126export 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}

Callers 3

createTaskCardFunction · 0.90
updateTaskCardFunction · 0.90

Calls 8

getEffectiveTaskStatusFunction · 0.90
formatDateForStorageFunction · 0.90
taskHasDetailsFunction · 0.85
buildTaskCardClassNamesFunction · 0.85
getActiveTimeSessionMethod · 0.80
getCompletedStatusesMethod · 0.65
isCompletedStatusMethod · 0.65

Tested by

no test coverage detected