AutorÃa | Ultima modificación | Ver Log |
//// GridSlideView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 2/17/22.//import SwiftUIstruct GridSlideView: View {@Environment(\.presentationMode)var presentationMode: Bindingprivate let capsuleDao : CapsuleDao = CapsuleDao()private var capsuleModel : CapsuleModel = CapsuleModel()private var viewModel : SlideGridViewModel = SlideGridViewModel()private var capsuleTitle : String = ""private let colorBackgroundTopic = UIColor(hex: Config.COLOR_BACKGROUND_TOPIC)private let colorAppTextView = UIColor(hex: Config.COLOR_APP_TEXT_VIEW_TITLE)private let colorAppBackground = UIColor(hex: Config.COLOR_APP_BAR)private let config = [GridItem(.fixed(Constants.CARD_WIDTH)),GridItem(.fixed(Constants.CARD_WIDTH))]@State private var backToCapsules : Bool = falseinit(capsuleUuid : String){let preference = Preference.sharedInstanceself.capsuleModel = capsuleDao.selectByUuid(uuid: capsuleUuid)viewModel.fetch(capsuleUuid: self.capsuleModel.uuid, userUuid: preference.userUuid)if self.capsuleModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {capsuleTitle = String(Array(self.capsuleModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."} else {capsuleTitle = self.capsuleModel.name}}var body: some View {VStack(spacing: 0.0) {NavigationLink("", destination: GridCapsuleView(topicUuid: self.capsuleModel.topicUuid), isActive: self.$backToCapsules).frame( height: 0)ScrollView() {LazyVGrid(columns: config, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/, spacing: /*@START_MENU_TOKEN@*/nil/*@END_MENU_TOKEN@*/, pinnedViews: /*@START_MENU_TOKEN@*/[]/*@END_MENU_TOKEN@*/, content: {ForEach(0..<self.viewModel.slides.count) { i inCardSlideView(slideUuid: self.viewModel.slides[i].uuid, position: i).frame(width: Constants.CARD_WIDTH,height: Constants.CARD_HEIGHT,alignment: .center)}}).padding(.top, 10)}Spacer()}.background(Color(colorBackgroundTopic ?? .gray)).navigationBarTitleDisplayMode(.inline).navigationTitle(capsuleTitle).navigationBarBackButtonHidden(true).toolbar {ToolbarItem(placement: .navigationBarLeading) {Button(action: {//self.presentationMode.wrappedValue.dismiss()self.backToCapsules = true}) {HStack {Image(systemName: "chevron.backward").aspectRatio(contentMode: .fit).foregroundColor(Color( colorAppTextView ?? .systemBlue)).background(Color(colorAppBackground ?? .systemBlue))}}}} .onAppear {print("GridSlideView")}}}struct GridSlideView_Previews: PreviewProvider {static var previews: some View {GridSlideView(capsuleUuid: "C123")}}