comparison GeoQuiz/Helpers/GameAlertsModifier.swift @ 26:425078c01194

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Wed, 09 Nov 2022 10:30:01 +0100
parents GeoQuiz/Components/GameAlertsModifier.swift@f1967f8cc67b
children 6d574bd1644f
comparison
equal deleted inserted replaced
25:b3df0f5dc750 26:425078c01194
1 //
2 // GameAlertsModifier.swift
3 // GeoQuiz
4 //
5 // Created by Dennis Concepción Martín on 22/9/22.
6 //
7
8 import SwiftUI
9 import CoreData
10
11 struct GameAlertsModifier<T: Game>: ViewModifier {
12 @ObservedObject var gameController: T
13
14 var gameType: GameType
15 var moc: NSManagedObjectContext
16
17 @Environment(\.dismiss) var dismiss
18
19 func body(content: Content) -> some View {
20 content
21 .alert(gameController.alertTitle, isPresented: $gameController.showingWrongAnswerAlert) {
22 Button("Continue", role: .cancel) {
23 gameController.askQuestion {
24 gameController.selector()
25 }
26 }
27 } message: {
28 Text(gameController.alertMessage)
29 }
30
31 .alert(gameController.alertTitle, isPresented: $gameController.showingEndGameAlert) {
32 Button("Exit", role: .cancel) {
33 gameController.save(gameType, with: moc)
34 dismiss()
35 }
36 } message: {
37 Text(gameController.alertMessage)
38 }
39
40 .alert("Are you sure?", isPresented: $gameController.showingExitGameAlert) {
41 Button("Exit", role: .destructive) { dismiss() }
42 Button("Cancel", role: .cancel) { }
43 } message: {
44 Text("Progress won't be saved.")
45 }
46 }
47 }