annotate GeoQuiz/Components/RecentGameHelper.swift @ 17:8dac58bb4569

fix build bug
author Dennis C. M. <dennis@denniscm.com>
date Thu, 20 Oct 2022 18:07:51 +0200
parents 1011e56b7832
children f140bb277c96
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // RecentGameHelper.swift
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 19/10/22.
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct RecentGame: View {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 let game: PlayedGame
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 let name: String
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 let gradient: Gradient
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 let symbol: String
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 var body: some View {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 HStack(alignment: .center, spacing: 15) {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 RoundedRectangle(cornerRadius: 5)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 .fill(
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 LinearGradient(
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 gradient: gradient,
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 startPoint: .top, endPoint: .bottom
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 .frame(width: 35, height: 35)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 .overlay(
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 Image(systemName: symbol)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 .font(.headline)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 .foregroundColor(.white)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 .padding(5)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 VStack(alignment: .leading) {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 Text(name)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 .font(.headline)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 Text("\(game.date, format: .dateTime)")
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38 .font(.callout)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 .foregroundColor(.secondary)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 Spacer()
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44 Text("\(game.score, format: .number) ⭐️")
17
8dac58bb4569 fix build bug
Dennis C. M. <dennis@denniscm.com>
parents: 16
diff changeset
45 .font(.headline)
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
46
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
47 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
48 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
49
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
50 init(game: PlayedGame) {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 self.game = game
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
52
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
53 switch game.type {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
54 case .guessTheFlag:
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
55 self.name = GuessTheFlagInfo.name
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
56 self.gradient = GuessTheFlagInfo.gradient
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
57 self.symbol = GuessTheFlagInfo.symbol
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
58 case .guessTheCapital:
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
59 self.name = GuessTheCapitalInfo.name
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
60 self.gradient = GuessTheCapitalInfo.gradient
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
61 self.symbol = GuessTheCapitalInfo.symbol
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
62 case .guessTheCountry:
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
63 self.name = GuessTheCountryInfo.name
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
64 self.gradient = GuessTheCountryInfo.gradient
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
65 self.symbol = GuessTheCountryInfo.symbol
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
66 case .guessThePopulation:
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
67 self.name = GuessThePopulationInfo.name
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
68 self.gradient = GuessThePopulationInfo.gradient
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
69 self.symbol = GuessThePopulationInfo.symbol
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
70 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
71 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
72 }