Enrich test data, fix multi-page PDF export, and polish UI

- Populate debug test data with random notes, guided reflections, and weather
- Fix PDF export to use UIPrintPageRenderer for proper multi-page pagination
- Add journal/reflection indicator icons to day list entry cells
- Fix weather card icon contrast by using secondarySystemBackground
- Align Generate Report and Export PDF button widths in ReportsView

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-03-11 18:19:01 -05:00
parent a9eeddf2b5
commit 6a8a66546b
5 changed files with 189 additions and 32 deletions

View File

@@ -32,6 +32,18 @@ struct EntryListView: View {
entry.moodValue == Mood.missing.rawValue
}
private var hasNotes: Bool {
if let notes = entry.notes, !notes.isEmpty { return true }
return false
}
private var hasReflection: Bool {
if let json = entry.reflectionJSON,
let reflection = GuidedReflection.decode(from: json),
reflection.answeredCount > 0 { return true }
return false
}
// MARK: - Cached Date Strings (avoids repeated ICU/Calendar operations)
private var dateCache: DateFormattingCache { DateFormattingCache.shared }
private var cachedDay: String { dateCache.string(for: entry.forDate, format: .day) }
@@ -92,6 +104,23 @@ struct EntryListView: View {
orbitStyle
}
}
.overlay(alignment: .bottomTrailing) {
if !isMissing && (hasNotes || hasReflection) {
HStack(spacing: 4) {
if hasNotes {
Image(systemName: "note.text")
.font(.caption2)
}
if hasReflection {
Image(systemName: "sparkles")
.font(.caption2)
}
}
.foregroundStyle(.secondary)
.padding(.trailing, 12)
.padding(.bottom, 6)
}
}
.accessibilityElement(children: .combine)
.accessibilityIdentifier(AccessibilityID.DayView.entryRow(dateString: cachedYearMonthDayDigits))
.accessibilityLabel(accessibilityDescription)