annotate GeoQuiz/ContentView.swift @ 11:039b26a99a48

implementing RevenueCat
author Dennis C. M. <dennis@denniscm.com>
date Sun, 09 Oct 2022 17:02:34 +0200
parents a793f33f05fb
children bdfff35dd43c
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 {
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
11 @State private var showingBuyPremiumModalView = false
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
12 @State private var showingSettingsModalView = false
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
13 @State private var showingProfileModalView = 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) {
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
18 VStack(alignment: .leading, spacing: 30) {
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
19 Text("Select a game 🎮")
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
20 .font(.largeTitle.bold())
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
21 .padding(.bottom)
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
23 NavigationLink(destination: GuessTheFlagView()) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 gradient: .main,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
26 level: "Level 1", symbol: "flag.fill", name: "Guess the flag"
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 )
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
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
30 NavigationLink(destination: GuessTheCapitalView()) {
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 GameButton(
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 gradient: .secondary,
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
33 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
34 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
35 }
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
36
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
37 NavigationLink(destination: GuessTheCountryView()) {
1
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
38 GameButton(
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
39 gradient: .tertiary,
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
40 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
41 )
259a15f485c5 fix bug with NavigationLink
Dennis C. M. <dennis@denniscm.com>
parents: 0
diff changeset
42 }
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
43
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
44 NavigationLink(destination: GuessThePopulationView()) {
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
45 GameButton(
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
46 gradient: .quaternary,
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
47 level: "Level 4", symbol: "person.fill", name: "Guess the population"
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
48 )
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
49 }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 .padding()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
52 }
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
53 .navigationTitle("GeoQuiz")
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 8
diff changeset
54 .navigationBarTitleDisplayMode(.inline)
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 .toolbar {
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
56 ToolbarItem(placement: .navigationBarLeading) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
57 Button {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
58 showingSettingsModalView = true
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
59 } label: {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
60 Label("Settings", systemImage: "gear")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
61 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
62 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
63
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
64 ToolbarItemGroup {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
65 Button {
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
66 showingBuyPremiumModalView = true
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
67 } label: {
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
68 Label("Buy premium", systemImage: "star")
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
69 }
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
70
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
71 Button {
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
72 showingProfileModalView = true
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
73 } label: {
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
74 Label("Profile", systemImage: "person")
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
75 }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
76 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
77 }
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 6
diff changeset
78 .sheet(isPresented: $showingBuyPremiumModalView) {
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
79 BuyPremiumModalView()
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
80 }
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
81
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
82 .sheet(isPresented: $showingSettingsModalView) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
83 SettingsModalView()
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents: 4
diff changeset
84 }
11
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
85
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
86 .sheet(isPresented: $showingProfileModalView) {
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
87 ProfileModalView()
039b26a99a48 implementing RevenueCat
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
88 }
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
89 }
6
1946bbfde4af reformat data structures
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
90 .navigationViewStyle(StackNavigationViewStyle())
0
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
91 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
92 }
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 struct ContentView_Previews: PreviewProvider {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
95 static var previews: some View {
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
96 ContentView()
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
97 }
413e2d21333e first commit
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
98 }