From 209155dc431cf70d9c8dba20625bab7e3b1a5085 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 1 Apr 2026 14:04:27 -0500 Subject: Fix several bugs ahead of 2.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. --- Hutch/Views/Settings/SettingsView.swift | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'Hutch/Views/Settings/SettingsView.swift') diff --git a/Hutch/Views/Settings/SettingsView.swift b/Hutch/Views/Settings/SettingsView.swift index e90f4e3..237c076 100644 --- a/Hutch/Views/Settings/SettingsView.swift +++ b/Hutch/Views/Settings/SettingsView.swift @@ -8,6 +8,7 @@ private let settingsBioMarkdownOptions = AttributedString.MarkdownParsingOptions struct SettingsView: View { @Environment(AppState.self) private var appState @Environment(\.colorScheme) private var colorScheme + @AppStorage(AppStorageKeys.swipeActionsEnabled) private var swipeActionsEnabled = true @State private var viewModel: SettingsViewModel? @State private var pendingDestructiveAction: SettingsDestructiveAction? @@ -389,15 +390,7 @@ struct SettingsView: View { @ViewBuilder private func behaviorSection() -> some View { Section { - Toggle( - "Swipe actions", - isOn: Binding( - get: { - UserDefaults.standard.object(forKey: AppStorageKeys.swipeActionsEnabled) as? Bool ?? true - }, - set: { UserDefaults.standard.set($0, forKey: AppStorageKeys.swipeActionsEnabled) } - ) - ) + Toggle("Swipe actions", isOn: $swipeActionsEnabled) } header: { Text("Behavior") } footer: { -- cgit v1.2.3