Autoría | Ultima modificación | Ver Log |
//
// TimeLinePointView.swift
// twogetskills
//
// Created by Efrain Yanez Recanatini on 3/24/22.
//
import Foundation
import SwiftUI
struct TimeLinePointView : View {
private let activity : String
private let imageName : String
private let date : String
private let highlight : Bool
init(userLogModel : UserLogModel, highlight : Bool)
{
self.highlight = highlight
let dateFormatterUserLog = DateFormatter()
dateFormatterUserLog.dateFormat = Constants.FORMAT_DATETIME_SERVICE
let dateFormatterView = DateFormatter()
dateFormatterView.dateFormat = Constants.FORMAT_DATE_TIME_12
let now = Date()
let timeStamp = dateFormatterUserLog.date(from: userLogModel.addedOn) ?? now
date = dateFormatterView.string(from: timeStamp)
//let dateOn = dateFormatter.string(from: now)
if userLogModel.activity == Constants.USER_LOG_ACTIVITY_SIGNIN {
imageName = "ic_inicio_de_sesion"
activity = "Inicio sesión"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_SIGNOUT {
imageName = "ic_cerrar_sesion"
activity = "Cerrar sesión"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_START_TOPIC {
imageName = "ic_inicio_un_topico"
activity = "Inicio un tópico"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_START_CAPSULE {
imageName = "ic_inicio_una_capsula"
activity = "Inicio una cápsula"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_COMPLETED_TOPIC {
imageName = "ic_competo_un_topico"
activity = "Completo un tópico"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_COMPLETED_CAPSULE {
imageName = "ic_completo_una_capsula"
activity = "Completo una cápsula"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_VIEW_SLIDE {
imageName = "ic_vio_una_diapositiva"
activity = "Ver una diapositiva"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_TAKE_A_TEST {
imageName = "ic_tomo_un_quiz"
activity = "Tomo un cuestionario"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_RETAKE_A_TEST {
imageName = "ic_repitio_un_quiz"
activity = "Repitio un cuestionario"
}
else if userLogModel.activity == Constants.USER_LOG_ACTIVITY_APPROVED_TEST {
imageName = "ic_questionario_paso"
activity = "Aprobo un cuestionario"
}
else {
imageName = "ic_desconocido"
activity = "Desconocido"
}
}
var body: some View {
GeometryReader { geometry in
let posXCircle = (10 + (geometry.size.width / 2)) - geometry.size.width
let posYCircle = (geometry.size.height / 2)
let posXLine = (10 + (geometry.size.width / 2)) - geometry.size.width
ZStack {
Circle().frame(width: 10, height: 10, alignment: .topTrailing)
.foregroundColor( Color("color_timeline_list_item_foreground_indicator"))
.offset(x: posXCircle, y: posYCircle)
Rectangle().frame(width:5, height: geometry.size.height)
.foregroundColor( Color("color_timeline_list_item_foreground_indicator"))
.offset(x: posXLine, y: 0)
HStack{
VStack(alignment: .leading, spacing: 8) {
Text(activity)
.bold()
.font(.callout)
.lineLimit(1)
.foregroundColor(highlight ? Color("color_timeline_list_item_foreground_highlight") : Color("color_timeline_list_item_foreground"))
Text(date)
.font(.caption2)
.foregroundColor(highlight ? Color("color_timeline_list_item_foreground_highlight") : Color("color_timeline_list_item_foreground"))
}.padding(.leading, 25)
Spacer()
Image(uiImage: UIImage(named: imageName) ?? UIImage())
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 32, height: 32)
.background(Color("color_timeline_list_item_background"))
.clipShape(Circle())
.overlay(Circle().stroke(Color.white, lineWidth: 4))
.shadow(radius: 10)
.padding(10)
}
}
}
}
}
struct TimeLinePointView_Previews: PreviewProvider {
static var previews: some View {
let userLogModel = UserLogModel()
TimeLinePointView(userLogModel : userLogModel, highlight: true)
}
}