annotate GeoQuiz/Helpers/RecentGame.swift @ 26:425078c01194

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Wed, 09 Nov 2022 10:30:01 +0100
parents GeoQuiz/Components/RecentGame.swift@56add5561261
children
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 //
20
e281791e0494 finish implementation
Dennis C. M. <dennis@denniscm.com>
parents: 19
diff changeset
2 // RecentGame.swift
16
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
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
12 let gameInfo: GameInfo
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
13
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
14 init(game: PlayedGame) {
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
15 self.game = game
26
425078c01194 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 22
diff changeset
16 self.gameInfo = GameInfoModel.getInfo(for: game.type)
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
17 }
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 var body: some View {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 HStack(alignment: .center, spacing: 15) {
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 RoundedRectangle(cornerRadius: 5)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 .fill(
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 LinearGradient(
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
24 gradient: gameInfo.gradient,
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 startPoint: .top, endPoint: .bottom
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28 .frame(width: 35, height: 35)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 .overlay(
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
30 Image(systemName: gameInfo.symbol)
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 .font(.headline)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 .foregroundColor(.white)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 .padding(5)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 )
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 VStack(alignment: .leading) {
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 17
diff changeset
37 Text(gameInfo.name)
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38 .font(.headline)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39
22
56add5561261 add mock data creation
Dennis C. M. <dennis@denniscm.com>
parents: 21
diff changeset
40 Text("\(game.date ?? Date(), format: .dateTime.day().month().year())")
16
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 .font(.callout)
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 .foregroundColor(.secondary)
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
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45 Spacer()
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 Text("\(game.score, format: .number) ⭐️")
17
8dac58bb4569 fix build bug
Dennis C. M. <dennis@denniscm.com>
parents: 16
diff changeset
48 .font(.headline)
16
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 }
1011e56b7832 implement user profile
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
51 }