Proyectos de Subversion Iphone Microlearning - Inconcert

Rev

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)
    }
}