Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//// CapsuleInProgressView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 7/27/22.//import SwiftUIimport HTMLEntitiesstruct MyCapsuleInProgressView: View {@EnvironmentObject var appNavigation : AppNavigationprivate var appData = AppData.sharedInstance@ObservedObject private var viewModel = MyCapsulesInProgressViewModel()private var capsuleTitle : String = ""init(capsuleUuid: String){viewModel.fetch()if viewModel.capsule.uuid.isEmpty {self.capsuleTitle = Config.LANG_MY_CAPSULES_INPROGRESS_NOT_AVAILABLE} else {if viewModel.capsule.name.count > Constants.CAPSULE_TITLE_MAX_LENGTH {self.capsuleTitle = String(Array(viewModel.capsule.name)[0...Constants.CAPSULE_TITLE_MAX_LENGTH]) + "..."} else {self.capsuleTitle = viewModel.capsule.name}}}var body: some View {Group {HStack {VStack(spacing: 0) {HStack {Text(Config.LANG_MY_CAPSULES_INPROGRESS_TITLE).font(Font.custom(Config.FONT_NAME_BOLD, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_TITLE)).foregroundColor(Color("color_capsule_inprogress_foreground_title"))Spacer()}.padding(.top, 16).padding(.leading, 16)HStack {Text(self.capsuleTitle).font(Font.custom(Config.FONT_NAME_BOLD, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_CAPSULE_NAME)).foregroundColor(Color("color_capsule_inprogress_foreground_capsule_name")).padding(.leading, 4).padding(.trailing, 4)Spacer()}.padding(.top, 10).padding(.leading, 16)HStack {ProgressBar(value: self.viewModel.capsule.progress,maxValue: 100,backgroundColor: Color("color_capsule_inprogress_progress_bar_background"),foregroundColor: Color("color_capsule_inprogress_progress_bar_foreground")).frame(height: 6).padding(10)Text( String(format: "%.1f", self.viewModel.capsule.progress) + "%").font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_PROGRESS_LABEL )).foregroundColor(Color("color_capsule_inprogress_progress_label")).padding(5)}.padding(.leading, 10).padding(.trailing, 10)Spacer()if !self.viewModel.capsule.uuid.isEmpty {HStack {Button(action: {self.appData.topicUuidActive = viewModel.capsule.topicUuidself.appData.capsuleUuidActive = viewModel.capsule.uuidself.appData.slideUuidActive = ""self.appData.save()withAnimation {appNavigation.subPageSource = .mycapsulesappNavigation.subpageActive = .slides}}, label: {Text(Config.LANG_MY_CAPSULES_INPROGRESS_BUTTON_CONTINUE).font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_BUTTON)).foregroundColor(Color("color_capsule_inprogress_button_foreground")).padding(.vertical, 5).padding(.horizontal, 10)}).background(Color("color_capsule_inprogress_button_background")).cornerRadius(3).overlay(RoundedRectangle(cornerRadius: 3).stroke(Color("color_capsule_inprogress_button_border"), lineWidth:1))Spacer()}.padding(.leading, 16).padding(.bottom, 10)}}Group {if self.viewModel.capsule.image.isEmpty {Image(uiImage: UIImage(named: "logo") ?? UIImage()).resizable().resizable().aspectRatio(contentMode: .fit)} else {CustomAsyncImage(url: URL(string: self.viewModel.capsule.image)!,placeholder: { Text(Config.LANG_COMMON_LOADING).font(.footnote).foregroundColor(.black)},image: {Image(uiImage: $0).resizable()})}} . frame(width: 93, height: 140, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/).background(Color("color_window_background")).padding(.top, 16).padding(.bottom, 16).padding(.trailing, 16)}}.frame(width: UIScreen.main.bounds.width - 32, height: 151).background(Color("color_capsule_inprogress_background")).cornerRadius(8).overlay(RoundedRectangle(cornerRadius: 8).stroke(Color("color_capsule_comment_rating_image_border"), lineWidth:1)).shadow(color: Color("color_capsule_inprogress_shadow"), radius:4, x: 5, y: 5)}}struct MyCapsuleInProgressView_Previews: PreviewProvider {static var previews: some View {MyCapsuleInProgressView(capsuleUuid: "C123")}}