@@ -7,6 +7,7 @@ import UIKit
77struct AggregatedStatsView : View {
88 @ObservedObject var viewModel : AggregatedStatsViewModel
99 @Environment ( \. dismiss) var dismiss
10+ var onDismiss : ( ( ) -> Void ) ?
1011 @State private var showGMI : Bool
1112 @State private var showStdDev : Bool
1213 @State private var startDate : Date
@@ -17,8 +18,9 @@ struct AggregatedStatsView: View {
1718 @State private var loadingTimer : Timer ?
1819 @State private var timeoutTimer : Timer ?
1920
20- init ( viewModel: AggregatedStatsViewModel ) {
21+ init ( viewModel: AggregatedStatsViewModel , onDismiss : ( ( ) -> Void ) ? = nil ) {
2122 self . viewModel = viewModel
23+ self . onDismiss = onDismiss
2224 _showGMI = State ( initialValue: Storage . shared. showGMI. value)
2325 _showStdDev = State ( initialValue: Storage . shared. showStdDev. value)
2426
@@ -105,6 +107,11 @@ struct AggregatedStatsView: View {
105107 }
106108 . navigationBarTitleDisplayMode ( . inline)
107109 . toolbar {
110+ if let onDismiss {
111+ ToolbarItem ( placement: . navigationBarLeading) {
112+ Button ( " Done " , action: onDismiss)
113+ }
114+ }
108115 ToolbarItem ( placement: . navigationBarTrailing) {
109116 Button ( " Refresh " ) {
110117 loadingError = false
@@ -163,6 +170,38 @@ struct AggregatedStatsView: View {
163170 }
164171}
165172
173+ struct AggregatedStatsContentView : View {
174+ @StateObject private var viewModel : AggregatedStatsViewModel
175+ private let onDismiss : ( ( ) -> Void ) ?
176+
177+ init ( mainViewController: MainViewController ? , onDismiss: ( ( ) -> Void ) ? = nil ) {
178+ _viewModel = StateObject ( wrappedValue: AggregatedStatsViewModel ( mainViewController: mainViewController) )
179+ self . onDismiss = onDismiss
180+ }
181+
182+ var body : some View {
183+ AggregatedStatsView ( viewModel: viewModel, onDismiss: onDismiss)
184+ . preferredColorScheme ( Storage . shared. appearanceMode. value. colorScheme)
185+ }
186+ }
187+
188+ struct AggregatedStatsModalView : View {
189+ @Environment ( \. dismiss) private var dismiss
190+
191+ let mainViewController : MainViewController ?
192+
193+ var body : some View {
194+ NavigationView {
195+ AggregatedStatsContentView (
196+ mainViewController: mainViewController,
197+ onDismiss: { dismiss ( ) }
198+ )
199+ . navigationBarTitleDisplayMode ( . inline)
200+ }
201+ . preferredColorScheme ( Storage . shared. appearanceMode. value. colorScheme)
202+ }
203+ }
204+
166205struct StatCard : View {
167206 let title : String
168207 let value : String
0 commit comments