(reminder: Reminder)
| 256 | } |
| 257 | |
| 258 | private formatReminderDisplayText(reminder: Reminder): string { |
| 259 | if (reminder.type === "absolute") { |
| 260 | // For absolute reminders, show the full date and time |
| 261 | if (reminder.absoluteTime) { |
| 262 | try { |
| 263 | const date = new Date(reminder.absoluteTime); |
| 264 | return `${date.toLocaleDateString()} at ${date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" })}`; |
| 265 | } catch { |
| 266 | return `At ${reminder.absoluteTime}`; |
| 267 | } |
| 268 | } |
| 269 | return "Absolute reminder"; |
| 270 | } else { |
| 271 | // For relative reminders, show the timing relative to task date |
| 272 | const anchor = reminder.relatedTo === "due" ? "due date" : "scheduled date"; |
| 273 | const offset = this.formatOffset(reminder.offset || ""); |
| 274 | return `${offset} ${anchor}`; |
| 275 | } |
| 276 | } |
| 277 | |
| 278 | private renderQuickActions(section: HTMLElement): void { |
| 279 | // Only show quick actions if task has due/scheduled dates |
no test coverage detected