Mercurial > public > geoquiz
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 } |