comparison GeoQuiz/Helpers/GameAlertsModifier.swift @ 7:d945e52b0704

implement dynamic map
author Dennis C. M. <dennis@denniscm.com>
date Tue, 04 Oct 2022 18:54:24 +0200
parents de54f05adb78
children e09959b4e4a8
comparison
equal deleted inserted replaced
6:1946bbfde4af 7:d945e52b0704
7 7
8 import SwiftUI 8 import SwiftUI
9 9
10 struct GameAlertsModifier<T: Game>: ViewModifier { 10 struct GameAlertsModifier<T: Game>: ViewModifier {
11 @ObservedObject var game: T 11 @ObservedObject var game: T
12 @Binding var gameName: GameName? 12 @Environment(\.dismiss) var dismiss
13 13
14 func body(content: Content) -> some View { 14 func body(content: Content) -> some View {
15 content 15 content
16 .alert(game.alertTitle, isPresented: $game.showingWrongAnswerAlert) { 16 .alert(game.alertTitle, isPresented: $game.showingWrongAnswerAlert) {
17 Button("Continue", role: .cancel) { game.askQuestion() } 17 Button("Continue", role: .cancel) { game.askQuestion() }
18 } message: { 18 } message: {
19 Text(game.alertMessage) 19 Text(game.alertMessage)
20 } 20 }
21 21
22 .alert(game.alertTitle, isPresented: $game.showingNoLivesAlert) { 22 .alert(game.alertTitle, isPresented: $game.showingGameOverAlert) {
23 Button("Buy lives") { game.showingBuyLivesView = true } 23 Button("Try again") { game.reset() }
24 Button("Exit", role: .destructive) { gameName = nil } 24 Button("Exit", role: .cancel) { dismiss()}
25 Button("Cancel", role: .cancel) { }
26 } message: { 25 } message: {
27 Text(game.alertMessage) 26 Text(game.alertMessage)
28 } 27 }
29 28
30 .alert(game.alertTitle, isPresented: $game.showingEndGameAlert) { 29 .alert(game.alertTitle, isPresented: $game.showingEndGameAlert) {
31 Button("Exit", role: .cancel) { gameName = nil } 30 Button("Play again") { game.reset() }
31 Button("Exit", role: .cancel) { dismiss() }
32 } message: { 32 } message: {
33 Text(game.alertMessage) 33 Text(game.alertMessage)
34 } 34 }
35 35
36 .alert("Are you sure?", isPresented: $game.showingExitGameAlert) { 36 .alert("Are you sure?", isPresented: $game.showingExitGameAlert) {
37 Button("Exit", role: .destructive) { gameName = nil } 37 Button("Exit", role: .destructive) { dismiss() }
38 Button("Cancel", role: .cancel) { } 38 Button("Cancel", role: .cancel) { }
39 } message: { 39 } message: {
40 Text("You'll loose the progress so far.") 40 Text("Progress won't be saved.")
41 } 41 }
42 } 42 }
43 } 43 }