annotate GeoQuiz/ContentView.swift @ 6:1946bbfde4af

reformat data structures
author Dennis C. M. <dennis@denniscm.com>
date Thu, 29 Sep 2022 12:00:17 +0200
parents f31a61462e7a
children d945e52b0704
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // ContentView.swift
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 5/9/22.
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct ContentView: View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 @State private var gameName: GameName? = nil
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
12 @State private var showingBuyLivesModalView = false
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
13 @State private var showingSettingsModalView = false
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15 var body: some View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 NavigationView {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 ScrollView(showsIndicators: false) {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 VStack(spacing: 20) {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
20 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
21 destination: GuessTheFlagView(gameName: $gameName),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
22 tag: GameName.guessTheFlag,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
23 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
24 ) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 gradient: .main,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
27 level: "Level 1", symbol: "flag.fill", name: "Guess the flag"
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 )
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
31 NavigationLink(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
32 destination: GuessTheCapitalView(gameName: $gameName),
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
33 tag: GameName.guessTheCapital,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
34 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
35 ) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 gradient: .secondary,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
38 level: "Level 2", symbol: "building.2.fill", name: "Guess the capital"
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
39 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
40 }
6
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
41
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
42 NavigationLink(
6
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
43 destination: GuessTheCountryView(gameName: $gameName),
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
44 tag: GameName.guessTheCountry,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
45 selection: $gameName
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
46 ) {
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
47 GameButton(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
48 gradient: .tertiary,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
49 level: "Level 3", symbol: "globe.americas.fill", name: "Guess the country"
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
50 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
51 }
6
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
52 //
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
53 // NavigationLink(
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
54 // destination: Text("Guess the population"),
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
55 // tag: GameName.guessThePopulation,
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
56 // selection: $gameName
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
57 // ) {
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
58 // GameButton(
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
59 // gradient: .quaternary,
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
60 // level: "Level 4", symbol: "person.3.fill", name: "Guess the population"
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
61 // )
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
62 // }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 .padding()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66 .navigationTitle("Select a game 🎮")
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67 .toolbar {
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
68 ToolbarItem(placement: .navigationBarLeading) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
69 Button {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
70 showingSettingsModalView = true
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
71 } label: {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
72 Label("Settings", systemImage: "gear")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
73 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
74 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
75
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
76 ToolbarItemGroup {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
77 Button {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
78 showingBuyLivesModalView = true
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
79 } label: {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
80 Label("Buy lives", systemImage: "heart.fill")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
81 }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
82 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
83 }
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
84 .sheet(isPresented: $showingBuyLivesModalView) {
4
de54f05adb78 add prototype game stats
Dennis C. M. <dennis@denniscm.com>
parents: 1
diff changeset
85 BuyLivesModalView()
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
86 }
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
87
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
88 .sheet(isPresented: $showingSettingsModalView) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
89 SettingsModalView()
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
90 }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
91 }
6
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
92 .navigationViewStyle(StackNavigationViewStyle())
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
93 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
94 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
95
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
96 struct ContentView_Previews: PreviewProvider {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
97 static var previews: some View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
98 ContentView()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
99 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
100 }