( task: TaskInfo, plugin: TaskNotesPlugin, state: Omit<TaskCardRenderState, "cardClasses"> )
| 82 | } |
| 83 | |
| 84 | function buildTaskCardClassNames( |
| 85 | task: TaskInfo, |
| 86 | plugin: TaskNotesPlugin, |
| 87 | state: Omit<TaskCardRenderState, "cardClasses"> |
| 88 | ): string[] { |
| 89 | const cardClasses = ["task-card"]; |
| 90 | |
| 91 | if (state.layout !== "default") { |
| 92 | cardClasses.push(`task-card--layout-${state.layout}`); |
| 93 | } |
| 94 | |
| 95 | if (state.isCompleted) cardClasses.push("task-card--completed"); |
| 96 | if (state.isCompleted && shouldStrikeThroughCompletedTasks(plugin)) { |
| 97 | cardClasses.push("task-card--completed-strikethrough"); |
| 98 | } |
| 99 | if (state.isSkipped) cardClasses.push("task-card--skipped"); |
| 100 | if (task.archived) cardClasses.push("task-card--archived"); |
| 101 | if (state.isActivelyTracked) cardClasses.push("task-card--actively-tracked"); |
| 102 | if (state.isRecurring) cardClasses.push("task-card--recurring"); |
| 103 | if (state.isMaterializedOccurrence) cardClasses.push("task-card--materialized-occurrence"); |
| 104 | if (state.hasDetails) cardClasses.push("task-card--has-details"); |
| 105 | |
| 106 | if (task.priority) { |
| 107 | cardClasses.push(`task-card--priority-${sanitizeForCssClass(task.priority)}`); |
| 108 | } |
| 109 | |
| 110 | if (state.effectiveStatus) { |
| 111 | cardClasses.push(`task-card--status-${sanitizeForCssClass(state.effectiveStatus)}`); |
| 112 | } |
| 113 | |
| 114 | if (plugin.settings?.subtaskChevronPosition === "left") { |
| 115 | cardClasses.push("task-card--chevron-left"); |
| 116 | } |
| 117 | |
| 118 | const projectClassNames = getProjectClassNames(task); |
| 119 | if (projectClassNames.length > 0) { |
| 120 | cardClasses.push("task-card--has-projects", ...projectClassNames); |
| 121 | } |
| 122 | |
| 123 | return cardClasses; |
| 124 | } |
| 125 | |
| 126 | export function buildTaskCardRenderState( |
| 127 | task: TaskInfo, |
no test coverage detected