Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//// CardSlideView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 2/17/22.//import SwiftUIstruct CardSlideView: View {private let userUuid : Stringprivate let positionInitial : Intprivate var viewModel = SlideCardViewModel()private var appData = AppData.sharedInstance@EnvironmentObject private var appNavigation : AppNavigationinit(slideUuid : String, position : Int){positionInitial = positionuserUuid = appData.userUuidviewModel.fetch(slideUuid: slideUuid, userUuid: userUuid)if self.viewModel.slide.name.count > Constants.CAPSULE_TITLE_MAX_LENGTH {self.viewModel.slide.name = String(Array(self.viewModel.slide.name)[0...Constants.CAPSULE_TITLE_MAX_LENGTH]) + "..."}}var body: some View {Button(action: {appData.topicUuidActive = self.viewModel.slide.topicUuidappData.capsuleUuidActive = self.viewModel.slide.capsuleUuidappData.slideUuidActive = self.viewModel.slide.uuidappData.save()appNavigation.subpageActive = .gallery}) {ZStack {if self.viewModel.slide.completed == 1 {Image(uiImage: UIImage(named: "ic_slide_completado_checkmark") ?? UIImage())/*.alignmentGuide(.top, computeValue: { dimension in10})*/.offset(x: (Constants.CARD_WIDTH - 40) / 2, y: (-1 * ((Constants.CARD_HEIGHT - 50) / 2))).zIndex(10000).scaleEffect(0.8)}VStack {Text( self.viewModel.slide.name).font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_CARD_VIEW_TITLE)).foregroundColor(Color("color_textview_foreground")).padding(.horizontal, 5).padding(.top, 5).multilineTextAlignment(/*@START_MENU_TOKEN@*/.leading/*@END_MENU_TOKEN@*/)Spacer()HStack {if viewModel.slide.background.isEmpty && viewModel.slide.file.isEmpty {Image(uiImage: UIImage(named: "logo") ?? UIImage()).resizable().aspectRatio(contentMode: .fit)} else {CustomAsyncImage(url: URL(string:self.viewModel.slide.type == Constants.SLIDE_TYPE_IMAGE ? self.viewModel.slide.file : self.viewModel.slide.background)!,placeholder: { Text(Config.LANG_COMMON_LOADING).font(.footnote).foregroundColor(.black)},image: {Image(uiImage: $0).resizable()})}}.padding(.horizontal, 5)//.zIndex(500)Spacer()Group() {HStack {Spacer()}}.background(Color("color_window_background"))}.background(Color("color_card_view_background")).cornerRadius(16).overlay(RoundedRectangle(cornerRadius: 16).stroke(Color("color_card_view_border"), lineWidth: 1)).padding(.horizontal, 5)}.onAppear {self.viewModel.fetchProgress(slideUuid: self.viewModel.slide.uuid, userUuid: self.userUuid)}.onReceive(NotificationCenter.default.publisher(for: Constants.NOTIFICATION_NAME_COMPLETED_SLIDE)){ data inif data.userInfo != nil {if let notificationSlideUuid = data.userInfo?["slideUuid"]! as? String {if !notificationSlideUuid.isEmpty && notificationSlideUuid == self.viewModel.slide.uuid {self.viewModel.fetchProgress(slideUuid: notificationSlideUuid, userUuid: appData.userUuid)}}}}} .padding(.top, 5)}}struct CardSlideView_Previews: PreviewProvider {static var previews: some View {CardSlideView(slideUuid: "S123", position : 0)}}