Rev 9 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//// GridTopicView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 1/26/22.//import SwiftUIstruct GridTopicView: View {@EnvironmentObject private var appNavigation : AppNavigation@ObservedObject private var viewModel : TopicGridViewModel = TopicGridViewModel()@State private var scrollToIndex : Int = 0private let appData = AppData.sharedInstanceprivate let config = [GridItem(.flexible()),GridItem(.flexible())]var body: some View {VStack(spacing: 0) {HStack {Image("logo").resizable().frame(width: 32, height: 32, alignment: .center).aspectRatio(contentMode: .fit).foregroundColor(Color("color_app_bar_foreground")).padding(.leading, 16)Text(Config.LANG_TAB_BAR_BUTTON_TOPICS).font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 )).foregroundColor(Color("color_app_bar_foreground")).padding(.leading, 4)Spacer()Button(action: {}, label: {Image(uiImage: UIImage(named: "ui_refresh") ?? UIImage()).resizable().frame(width: 32, height: 32, alignment: .center).aspectRatio(contentMode: .fit).foregroundColor(Color("color_app_bar_foreground")).padding(.trailing, 16)})}.background(Color("color_app_bar_background")).edgesIgnoringSafeArea(.top).frame(height: 50)Divider()ScrollView() {ScrollViewReader { proxy inLazyVGrid(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.topics.count) { index inCardTopicView(topicUuid: self.viewModel.topics[index].uuid).environmentObject(appNavigation).frame(width: Constants.CARD_WIDTH,height: Constants.CARD_HEIGHT,alignment: .center).id(index)}.onChange(of: scrollToIndex, perform: { value inproxy.scrollTo(value, anchor: nil)})})}}.padding(.top, 5)}.onAppear {var i : Int = 0while i < self.viewModel.topics.count {if appData.topicUuidActive == self.viewModel.topics[i].uuid {self.scrollToIndex = i}i += 1}}}}struct GridTopicView_Previews: PreviewProvider {static var previews: some View {GridTopicView()}}