Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 23 | Rev 25 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  NotificationListView.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 7/31/22.
6
//
7
 
8
import SwiftUI
9
 
10
struct NotificationListView: View {
8 efrain 11
    @EnvironmentObject private var networkMonitor : NetworkMonitor
12
    @EnvironmentObject private var appNavigation : AppNavigation
1 efrain 13
 
14
    @ObservedObject var viewModel :NotificationListViewModel = NotificationListViewModel()
15
 
16
    var body: some View {
17
        VStack(spacing: 0) {
18
            HStack {
19
                Image("logo")
20
                .resizable()
21
                .frame(width: 32, height: 32, alignment: .center)
22
                .aspectRatio(contentMode: .fit)
8 efrain 23
                    .foregroundColor(networkMonitor.status == .disconnected ? Color("color_network_disconnected_foreground") : Color("color_app_bar_foreground"))
1 efrain 24
                .padding(.leading, 16)
25
 
8 efrain 26
                Text(networkMonitor.status == .disconnected ? Config.LANG_ERROR_NETWORK_MESSAGE_SHORT : Config.LANG_TAB_BAR_BUTTON_NOTIFICATIONS)
1 efrain 27
                .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 ))
8 efrain 28
                    .foregroundColor(networkMonitor.status == .disconnected ? Color("color_network_disconnected_foreground") : Color("color_app_bar_foreground"))
1 efrain 29
                .padding(.leading, 4)
30
 
31
                Spacer()
32
 
33
 
34
            }
35
            .edgesIgnoringSafeArea(.top)
36
            .frame(height: 50)
8 efrain 37
            .background(networkMonitor.status == .disconnected ? Color("color_network_disconnected_background") : Color("color_app_bar_background"))
38
 
39
            Divider().background(networkMonitor.status == .disconnected ? Color("color_network_disconnected_background") : Color("color_app_bar_background"))
1 efrain 40
 
41
            ScrollView {
22 efrain 42
 
23 efrain 43
                if self.viewModel.groups.count == 0  {
22 efrain 44
                    NotificationListItemEmptyView()
1 efrain 45
 
22 efrain 46
                } else {
47
 
48
 
49
 
50
                    LazyVStack  {
1 efrain 51
 
23 efrain 52
 
53
                        ForEach(self.viewModel.groups) { groupItem in
24 efrain 54
 
55
                            HStack {
56
 
57
                                Text(groupItem.label)
58
                                    .font(Font.custom(Config.FONT_NAME_BOLD, size: 14))
23 efrain 59
 
24 efrain 60
                                Spacer()
61
 
62
                            }.padding(.leading, 10)
63
                            .padding(.top, 10)
64
 
23 efrain 65
                            ForEach(0..<groupItem.notifications.count, id: \.self) { index in
66
 
67
                                let notificationItem = groupItem.notifications[index]
68
 
22 efrain 69
                                NotificationListItemView(notification: notificationItem)  {
70
                                    self.viewModel.removeItem(id: notificationItem.id)
23 efrain 71
                                }
22 efrain 72
                            }
73
                        }
1 efrain 74
                    }
75
                }
8 efrain 76
            }.padding(.top, 5)
1 efrain 77
        }
78
    }
79
}
80
 
81
struct NotificationListView_Previews: PreviewProvider {
82
    static var previews: some View {
83
        NotificationListView()
84
    }
85
}