Mercurial > public > geoquiz
annotate GeoQuiz/Helpers/GameAlertsModifier.swift @ 33:6d574bd1644f
refactor controllers
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Sat, 12 Nov 2022 11:18:30 +0100 |
parents | 425078c01194 |
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 { | |
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) { |
33 | 23 gameController.ask() |
8 | 24 } |
3 | 25 } message: { |
26 | 26 Text(gameController.alertMessage) |
3 | 27 } |
28 | |
26 | 29 .alert(gameController.alertTitle, isPresented: $gameController.showingEndGameAlert) { |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
30 Button("Exit", role: .cancel) { |
26 | 31 gameController.save(gameType, with: moc) |
15
f1967f8cc67b
first iteration of core data
Dennis C. M. <dennis@denniscm.com>
parents:
10
diff
changeset
|
32 dismiss() |
8 | 33 } |
3 | 34 } message: { |
26 | 35 Text(gameController.alertMessage) |
3 | 36 } |
4 | 37 |
26 | 38 .alert("Are you sure?", isPresented: $gameController.showingExitGameAlert) { |
7 | 39 Button("Exit", role: .destructive) { dismiss() } |
4 | 40 Button("Cancel", role: .cancel) { } |
41 } message: { | |
7 | 42 Text("Progress won't be saved.") |
4 | 43 } |
3 | 44 } |
45 } |