Rev 24 | Rev 26 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
//// NotificationListView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 7/31/22.//import SwiftUIstruct NotificationListView: View {@Environment(\.openURL) var openURL@EnvironmentObject private var networkMonitor : NetworkMonitor@EnvironmentObject private var appNavigation : AppNavigation@ObservedObject var viewModel :NotificationListViewModel = NotificationListViewModel()private let appData = AppData.sharedInstancevar body: some View {VStack(spacing: 0) {HStack {Image("logo").resizable().frame(width: 32, height: 32, alignment: .center).aspectRatio(contentMode: .fit).foregroundColor(networkMonitor.status == .disconnected ? Color("color_network_disconnected_foreground") : Color("color_app_bar_foreground")).padding(.leading, 16)Text(networkMonitor.status == .disconnected ? Config.LANG_ERROR_NETWORK_MESSAGE_SHORT : Config.LANG_TAB_BAR_BUTTON_NOTIFICATIONS).font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 )).foregroundColor(networkMonitor.status == .disconnected ? Color("color_network_disconnected_foreground") : Color("color_app_bar_foreground")).padding(.leading, 4)Spacer()}.edgesIgnoringSafeArea(.top).frame(height: 50).background(networkMonitor.status == .disconnected ? Color("color_network_disconnected_background") : Color("color_app_bar_background"))Divider().background(networkMonitor.status == .disconnected ? Color("color_network_disconnected_background") : Color("color_app_bar_background"))ScrollView {if self.viewModel.groups.count == 0 {NotificationListItemEmptyView()} else {LazyVStack {ForEach(self.viewModel.groups) { groupItem inHStack {Text(groupItem.label).font(Font.custom(Config.FONT_NAME_BOLD, size: 14))Spacer()}.padding(.leading, 10).padding(.top, 10)ForEach(0..<groupItem.notifications.count, id: \.self) { index inlet notificationItem = groupItem.notifications[index]NotificationListItemView(notification: notificationItem,onExecute: {if notificationItem.command == Constants.NOTIFICATION_COMMAND_REFRESH_CONTENT && notificationItem.viewed == 0 {self.viewModel.markAllForViewedByType(command: Constants.NOTIFICATION_COMMAND_REFRESH_CONTENT)appData.refreshContentActionRequired = trueappData.save()withAnimation {appNavigation.subpageActive = .topics}} else if notificationItem.command == Constants.NOTIFICATION_COMMAND_OPEN_URL &&!notificationItem.url.isEmpty &¬ificationItem.viewed == 0 {openURL(URL(string: notificationItem.url)!)self.viewModel.markForViewedById(id: notificationItem.id)}}) {self.viewModel.removeItem(id: notificationItem.id)}}}}}}.padding(.top, 5)}}}struct NotificationListView_Previews: PreviewProvider {static var previews: some View {NotificationListView()}}