Autoría | Ultima modificación | Ver Log |
//
// ProgressView.swift
// twogetskills
//
// Created by Efrain Yanez Recanatini on 5/5/22.
//
import Foundation
import SwiftUI
struct MyProgressView: View {
@ObservedObject private var viewModel = ProgressViewModel()
private let colorTitle = UIColor(hex: Config.COLOR_TEXT_VIEW_TITLE)
private let colorBackgroundTopic = UIColor(hex: Config.COLOR_BACKGROUND_TOPIC)
private let colorAppBackground = UIColor(hex: Config.COLOR_APP_BAR)
private let colorWindowBackground = UIColor(hex: Config.COLOR_WINDOW_BACKGROUND)
init()
{
viewModel.load()
}
var body: some View {
GeometryReader { geometry in
VStack {
HStack {
Text("Cápsulas")
.font(.title3)
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.foregroundColor(Color(colorTitle ?? .gray))
Spacer()
}.padding([.top], 10)
.padding(.horizontal, 10)
HStack {
Spacer()
PieChartView(
values:[viewModel.percentajeCapsuleIncomplete, viewModel.percentajeCapsuleComplete],
names: ["", ""],
formatter: {value in String(format: "%.2f%%", value)},
colors: [
.gray,
Color(colorAppBackground ?? .green)
],
backgroundColor: Color(colorBackgroundTopic ?? .gray),
widthFraction: 0.75,
innerRadiusFraction: 0.60,
chartSize : 250,
total : viewModel.percentajeCapsuleComplete
)
.frame(width: 190, height: 190, alignment: .center)
Spacer()
}
HStack {
Spacer()
VStack {
Text(String(viewModel.capsuleTotal))
.font(.subheadline)
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.foregroundColor(Color(colorTitle ?? .systemBlue))
Text("Total")
.font(.subheadline)
.foregroundColor(.gray)
}
VStack {
Text(String(viewModel.capsuleTotalStarted))
.font(.subheadline)
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.foregroundColor(Color(colorTitle ?? .systemBlue))
Text("Iniciadas")
.font(.subheadline)
.foregroundColor(.gray)
}
VStack {
Text(String(viewModel.capsuleTotalForStart))
.font(.subheadline)
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.foregroundColor(Color(colorTitle ?? .systemBlue))
Text("Por realizar")
.font(.subheadline)
.foregroundColor(.gray)
}
VStack {
Text(String(viewModel.capsuleTotalCompleted))
.font(.subheadline)
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.foregroundColor(Color(colorTitle ?? .systemBlue))
Text("Completadas")
.font(.subheadline)
.foregroundColor(.gray)
}
Spacer()
}.padding([.top], 5)
HStack {
Text("Retorno")
.fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
.font(.title3)
.foregroundColor(Color(colorTitle ?? .gray))
Spacer()
}.padding([.top], 5)
.padding(.horizontal, 10)
HStack {
Spacer()
PieChartView(
values:[
Double(viewModel.capsuleTotalWithoutReturning),
Double(viewModel.capsuleTotalWithReturning)
],
names: ["", ""],
formatter: {value in String(format: "%.0f", value)},
colors: [
.gray,
Color(colorAppBackground ?? .green)
],
backgroundColor: Color(colorBackgroundTopic ?? .gray),
widthFraction: 0.75,
innerRadiusFraction: 0.60,
chartSize : 250,
total : Double(viewModel.capsuleTotalWithReturning)
)
.frame(width: 190, height: 190, alignment: .center)
Spacer()
}
Spacer()
}.onAppear {
viewModel.load()
}
.frame(width: geometry.size.width, height: geometry.size.height, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
.background(Color(colorBackgroundTopic ?? .white))
.navigationTitle("Progreso")
.navigationBarTitleDisplayMode(.inline)
.navigationBarBackButtonHidden(true)
}
}
}
struct MyProgressView_Previews: PreviewProvider {
static var previews: some View {
MyProgressView()
}
}