Mercurial > public > geoquiz
annotate GeoQuiz/Components/GameAlertsModifier.swift @ 21:b145c408f791
refactor code
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Tue, 25 Oct 2022 15:30:01 +0200 |
parents | f1967f8cc67b |
children |
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 { | |
12 @ObservedObject var game: 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 | |
21 .alert(game.alertTitle, isPresented: $game.showingWrongAnswerAlert) { | |
8 | 22 Button("Continue", role: .cancel) { |
23 game.askQuestion { | |
24 game.selector() | |
25 } | |
26 } | |
3 | 27 } message: { |
28 Text(game.alertMessage) | |
29 } | |
30 | |
31 .alert(game.alertTitle, isPresented: $game.showingEndGameAlert) { | |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
32 Button("Exit", role: .cancel) { |
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
33 game.save(gameType, with: moc) |
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
34 dismiss() |
8 | 35 } |
3 | 36 } message: { |
37 Text(game.alertMessage) | |
38 } | |
4 | 39 |
40 .alert("Are you sure?", isPresented: $game.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 } |