Mercurial > public > geoquiz
annotate 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 |
rev | line source |
---|---|
3 | 1 // |
2 // GameAlertsModifier.swift | |
3 // GeoQuiz | |
4 // | |
5 // Created by Dennis Concepción Martín on 22/9/22. | |
6 // | |
7 | |
8 import SwiftUI | |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
9 import CoreData |
3 | 10 |
11 struct GameAlertsModifier<T: Game>: ViewModifier { | |
26 | 12 @ObservedObject var gameController: T |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
13 |
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
14 var gameType: GameType |
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
15 var moc: NSManagedObjectContext |
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
16 |
7 | 17 @Environment(\.dismiss) var dismiss |
3 | 18 |
19 func body(content: Content) -> some View { | |
20 content | |
26 | 21 .alert(gameController.alertTitle, isPresented: $gameController.showingWrongAnswerAlert) { |
8 | 22 Button("Continue", role: .cancel) { |
26 | 23 gameController.askQuestion { |
24 gameController.selector() | |
8 | 25 } |
26 } | |
3 | 27 } message: { |
26 | 28 Text(gameController.alertMessage) |
3 | 29 } |
30 | |
26 | 31 .alert(gameController.alertTitle, isPresented: $gameController.showingEndGameAlert) { |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
32 Button("Exit", role: .cancel) { |
26 | 33 gameController.save(gameType, with: moc) |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
34 dismiss() |
8 | 35 } |
3 | 36 } message: { |
26 | 37 Text(gameController.alertMessage) |
3 | 38 } |
4 | 39 |
26 | 40 .alert("Are you sure?", isPresented: $gameController.showingExitGameAlert) { |
7 | 41 Button("Exit", role: .destructive) { dismiss() } |
4 | 42 Button("Cancel", role: .cancel) { } |
43 } message: { | |
7 | 44 Text("Progress won't be saved.") |
4 | 45 } |
3 | 46 } |
47 } |