@@ -2,13 +2,21 @@ import SwiftUI
22
33struct HomeWidgetsView : View {
44 @EnvironmentObject var app : AppViewModel
5+ @Environment ( KeyboardManager . self) private var keyboard
56 @EnvironmentObject var navigation : NavigationViewModel
67 @EnvironmentObject var settings : SettingsViewModel
78 @EnvironmentObject var suggestionsManager : SuggestionsManager
89 @EnvironmentObject var wallet : WalletViewModel
910 @EnvironmentObject var widgets : WidgetsViewModel
11+
1012 @Binding var isEditingWidgets : Bool
1113
14+ private var bottomPadding : CGFloat {
15+ // Keep the calculator widget fully scrollable above the keyboard.
16+ let inset = keyboard. height + ScreenLayout. bottomSpacing
17+ return keyboard. isPresented ? inset : ScreenLayout . bottomPaddingWithSafeArea
18+ }
19+
1220 /// Widgets to display; suggestions widget is hidden when it would show no cards (unless editing).
1321 private var widgetsToShow : [ Widget ] {
1422 widgets. savedWidgets. filter { widget in
@@ -46,9 +54,11 @@ struct HomeWidgetsView: View {
4654 }
4755 . frame ( maxWidth: . infinity, maxHeight: . infinity, alignment: . top)
4856 . padding ( . top, ScreenLayout . topPaddingWithSafeArea)
49- . padding ( . bottom, ScreenLayout . bottomPaddingWithSafeArea )
57+ . padding ( . bottom, bottomPadding )
5058 . padding ( . horizontal)
5159 }
60+ // Dismiss (calculator widget) keyboard when scrolling
61+ . scrollDismissesKeyboard ( . interactively)
5262 }
5363
5464 private func rowContent( _ widget: Widget ) -> some View {
0 commit comments