summaryrefslogtreecommitdiff
path: root/Hutch/Views/Repositories/DiffView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-01 14:04:27 -0500
committerChristian Cleberg <[email protected]>2026-04-01 14:04:27 -0500
commit209155dc431cf70d9c8dba20625bab7e3b1a5085 (patch)
tree42d2c2c1b2ab0863b69bd57c9c6d2ab27fe1594c /Hutch/Views/Repositories/DiffView.swift
parente84e5543be9be548784859f4b082b9d7a3122f15 (diff)
downloadhutch-2.6.1.tar.gz
hutch-2.6.1.tar.bz2
hutch-2.6.1.zip
Fix several bugs ahead of 2.6.1v2.6.1
FileTreeView: when wrap is OFF, activate an explicit width constraint on the code container derived from the widest line, giving the horizontal scroll view a defined content size. Previously the constraint was deactivated with nothing to replace it, making horizontal scrolling unreliable. Also set horizontalScrollView.isScrollEnabled = !wrapLines to prevent gesture conflicts when wrap is ON. InboxView: remove the unnecessary loadThreads() network call fired after markAllThreadsRead(). The threads array is already updated optimistically and read state is persisted via InboxReadStateStore, so the refetch was redundant and caused a brief loading flash. HomeView: add scenePhase onChange handler to refresh dashboard data when the app returns to the foreground, matching the existing pattern in InboxView. DiffView: wrap DiffBlockView content in a horizontal ScrollView so long diff lines are readable. Switch inner VStack to LazyVStack for better performance on large diffs. SettingsView: replace direct UserDefaults access in behaviorSection with @AppStorage, consistent with the rest of the app.
Diffstat (limited to 'Hutch/Views/Repositories/DiffView.swift')
-rw-r--r--Hutch/Views/Repositories/DiffView.swift10
1 files changed, 6 insertions, 4 deletions
diff --git a/Hutch/Views/Repositories/DiffView.swift b/Hutch/Views/Repositories/DiffView.swift
index 4b8e512..a370dfb 100644
--- a/Hutch/Views/Repositories/DiffView.swift
+++ b/Hutch/Views/Repositories/DiffView.swift
@@ -76,13 +76,15 @@ private struct DiffBlockView: View {
let lines: [String]
var body: some View {
- VStack(alignment: .leading, spacing: 0) {
- ForEach(Array(lines.enumerated()), id: \.offset) { _, line in
- DiffLineView(line: line)
+ ScrollView(.horizontal, showsIndicators: false) {
+ LazyVStack(alignment: .leading, spacing: 0) {
+ ForEach(Array(lines.enumerated()), id: \.offset) { _, line in
+ DiffLineView(line: line)
+ }
}
+ .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
}
.font(.system(.caption, design: .monospaced))
- .frame(maxWidth: .infinity, alignment: .leading)
.background(Color(.secondarySystemBackground))
}
}