diff GeoQuiz/Components/RecentGameHelper.swift @ 19:f140bb277c96

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Sun, 23 Oct 2022 00:11:38 +0100
parents 8dac58bb4569
children
line wrap: on
line diff
--- a/GeoQuiz/Components/RecentGameHelper.swift	Sat Oct 22 08:56:54 2022 +0100
+++ b/GeoQuiz/Components/RecentGameHelper.swift	Sun Oct 23 00:11:38 2022 +0100
@@ -9,29 +9,32 @@
 
 struct RecentGame: View {
     let game: PlayedGame
-    let name: String
-    let gradient: Gradient
-    let symbol: String
+    let gameInfo: GameInfo
+    
+    init(game: PlayedGame) {
+        self.game = game
+        self.gameInfo = GameInfoController.getInfo(for: game.type)
+    }
     
     var body: some View {
         HStack(alignment: .center, spacing: 15) {
             RoundedRectangle(cornerRadius: 5)
                 .fill(
                     LinearGradient(
-                        gradient: gradient,
+                        gradient: gameInfo.gradient,
                         startPoint: .top, endPoint: .bottom
                     )
                 )
                 .frame(width: 35, height: 35)
                 .overlay(
-                    Image(systemName: symbol)
+                    Image(systemName: gameInfo.symbol)
                         .font(.headline)
                         .foregroundColor(.white)
                         .padding(5)
                 )
             
             VStack(alignment: .leading) {
-                Text(name)
+                Text(gameInfo.name)
                     .font(.headline)
                 
                 Text("\(game.date, format: .dateTime)")
@@ -45,28 +48,8 @@
                 .font(.headline)
             
         }
-    }
-    
-    init(game: PlayedGame) {
-        self.game = game
-        
-        switch game.type {
-        case .guessTheFlag:
-            self.name = GuessTheFlagInfo.name
-            self.gradient = GuessTheFlagInfo.gradient
-            self.symbol = GuessTheFlagInfo.symbol
-        case .guessTheCapital:
-            self.name = GuessTheCapitalInfo.name
-            self.gradient = GuessTheCapitalInfo.gradient
-            self.symbol = GuessTheCapitalInfo.symbol
-        case .guessTheCountry:
-            self.name = GuessTheCountryInfo.name
-            self.gradient = GuessTheCountryInfo.gradient
-            self.symbol = GuessTheCountryInfo.symbol
-        case .guessThePopulation:
-            self.name = GuessThePopulationInfo.name
-            self.gradient = GuessThePopulationInfo.gradient
-            self.symbol = GuessThePopulationInfo.symbol
-        }
+        .padding()
+        .background(Color(.secondarySystemGroupedBackground))
+        .cornerRadius(20)
     }
 }