view GeoQuiz/Components/RecentGame.swift @ 21:b145c408f791

refactor code
author Dennis C. M. <dennis@denniscm.com>
date Tue, 25 Oct 2022 15:30:01 +0200
parents e281791e0494
children 56add5561261
line wrap: on
line source

//
//  RecentGame.swift
//  GeoQuiz
//
//  Created by Dennis Concepción Martín on 19/10/22.
//

import SwiftUI

struct RecentGame: View {
    let game: PlayedGame
    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: gameInfo.gradient,
                        startPoint: .top, endPoint: .bottom
                    )
                )
                .frame(width: 35, height: 35)
                .overlay(
                    Image(systemName: gameInfo.symbol)
                        .font(.headline)
                        .foregroundColor(.white)
                        .padding(5)
                )
            
            VStack(alignment: .leading) {
                Text(gameInfo.name)
                    .font(.headline)
                
                Text("\(game.date ?? Date(), format: .dateTime)")
                    .font(.callout)
                    .foregroundColor(.secondary)
            }
            
            Spacer()
            
            Text("\(game.score, format: .number) ⭐️")
                .font(.headline)
        }
    }
}