Commit
This commit is contained in:
@ -9,6 +9,7 @@ import SwiftUI
|
||||
|
||||
struct FavGroupsView: View {
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
var firstFavGroup = (UserDefaults.standard.string(forKey: "group") ?? "")
|
||||
var secondFavGroup = (UserDefaults.standard.string(forKey: "group2") ?? "")
|
||||
var thirdFavGroup = (UserDefaults.standard.string(forKey: "group3") ?? "")
|
||||
@ -74,7 +75,7 @@ struct FavGroupsView: View {
|
||||
HStack {
|
||||
Spacer()
|
||||
if firstFavGroup == "" || secondFavGroup == "" || thirdFavGroup == "" {
|
||||
NavigationLink(destination: SelectingGroupView(vm: vm, firstFavGroup: firstFavGroup, secondFavGroup: secondFavGroup, thirdFavGroup: thirdFavGroup)) {
|
||||
NavigationLink(destination: SelectingGroupView(vm: vm, networkMonitor: networkMonitor, firstFavGroup: firstFavGroup, secondFavGroup: secondFavGroup, thirdFavGroup: thirdFavGroup)) {
|
||||
HStack {
|
||||
Image(systemName: "plus")
|
||||
.foregroundColor(.white)
|
||||
@ -87,7 +88,7 @@ struct FavGroupsView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.bottom, 50)
|
||||
.padding(.bottom, 90)
|
||||
}
|
||||
.background(Color("background"))
|
||||
}
|
||||
@ -95,5 +96,6 @@ struct FavGroupsView: View {
|
||||
|
||||
#Preview {
|
||||
@Previewable @StateObject var vm = ScheduleViewModel()
|
||||
FavGroupsView(vm: vm)
|
||||
@Previewable @StateObject var vm2 = NetworkMonitor()
|
||||
FavGroupsView(vm: vm, networkMonitor: vm2)
|
||||
}
|
||||
|
@ -2,13 +2,14 @@
|
||||
// FavGroupsView.swift
|
||||
// Schedule ICTIS
|
||||
//
|
||||
// Created by G412 on 05.03.2025.
|
||||
// Created by Egor Mironov on 05.03.2025.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct FavVPKView: View {
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
var firstFavVPK = (UserDefaults.standard.string(forKey: "vpk1") ?? "")
|
||||
var secondFavVPK = (UserDefaults.standard.string(forKey: "vpk2") ?? "")
|
||||
var thirdFavVPK = (UserDefaults.standard.string(forKey: "vpk3") ?? "")
|
||||
@ -74,7 +75,7 @@ struct FavVPKView: View {
|
||||
HStack {
|
||||
Spacer()
|
||||
if firstFavVPK == "" || secondFavVPK == "" || thirdFavVPK == "" {
|
||||
NavigationLink(destination: SelectingVPKView(vm: vm, firstFavVPK: firstFavVPK, secondFavVPK: secondFavVPK, thirdFavVPK: thirdFavVPK)) {
|
||||
NavigationLink(destination: SelectingVPKView(vm: vm, networkMonitor: networkMonitor, firstFavVPK: firstFavVPK, secondFavVPK: secondFavVPK, thirdFavVPK: thirdFavVPK)) {
|
||||
HStack {
|
||||
Image(systemName: "plus")
|
||||
.foregroundColor(.white)
|
||||
@ -87,7 +88,7 @@ struct FavVPKView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.bottom, 50)
|
||||
.padding(.bottom, 90)
|
||||
}
|
||||
.background(Color("background"))
|
||||
}
|
||||
@ -95,5 +96,6 @@ struct FavVPKView: View {
|
||||
|
||||
#Preview {
|
||||
@Previewable @StateObject var vm = ScheduleViewModel()
|
||||
FavVPKView(vm: vm)
|
||||
@Previewable @StateObject var vm2 = NetworkMonitor()
|
||||
FavVPKView(vm: vm, networkMonitor: vm2)
|
||||
}
|
||||
|
@ -9,9 +9,10 @@ import SwiftUI
|
||||
|
||||
struct ScheduleGroupSettings: View {
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
var body: some View {
|
||||
VStack {
|
||||
NavigationLink(destination: FavGroupsView(vm: vm)) {
|
||||
NavigationLink(destination: FavGroupsView(vm: vm, networkMonitor: networkMonitor)) {
|
||||
HStack {
|
||||
Text("Избранное расписание")
|
||||
.font(.custom("Montserrat-Medium", fixedSize: 17))
|
||||
@ -27,7 +28,7 @@ struct ScheduleGroupSettings: View {
|
||||
.foregroundColor(Color("customGray1"))
|
||||
.frame(height: 1)
|
||||
.padding(.horizontal)
|
||||
NavigationLink(destination: FavVPKView(vm: vm)) {
|
||||
NavigationLink(destination: FavVPKView(vm: vm, networkMonitor: networkMonitor)) {
|
||||
HStack {
|
||||
Text("ВПК")
|
||||
.font(.custom("Montserrat-Medium", fixedSize: 17))
|
||||
|
@ -12,6 +12,7 @@ struct SelectingGroupView: View {
|
||||
@FocusState private var isFocused: Bool
|
||||
@State private var text: String = ""
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
@State private var isLoading = false
|
||||
@State private var searchTask: DispatchWorkItem?
|
||||
@StateObject private var serchGroupsVM = SearchGroupsViewModel()
|
||||
@ -93,9 +94,9 @@ struct SelectingGroupView: View {
|
||||
)
|
||||
Spacer()
|
||||
if isLoading {
|
||||
LoadingView(isLoading: $isLoading)
|
||||
}
|
||||
//if isFocused {
|
||||
LoadingView()
|
||||
Spacer()
|
||||
} else if networkMonitor.isConnected {
|
||||
ScrollView(.vertical, showsIndicators: true) {
|
||||
ForEach(serchGroupsVM.groups) { item in
|
||||
if item.name.starts(with: "КТ") { //Отображаем только группы(без аудиторий и преподавателей)
|
||||
@ -134,7 +135,9 @@ struct SelectingGroupView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
} else {
|
||||
NetworkErrorView(message: "Восстановите подключение к интернету чтобы мы смогли загрузить список групп")
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, 10)
|
||||
.background(Color("background"))
|
||||
@ -146,5 +149,6 @@ struct SelectingGroupView: View {
|
||||
|
||||
#Preview {
|
||||
@Previewable @StateObject var vm = ScheduleViewModel()
|
||||
SelectingGroupView(vm: vm, firstFavGroup: "", secondFavGroup: "", thirdFavGroup: "")
|
||||
@Previewable @StateObject var vm2 = NetworkMonitor()
|
||||
SelectingGroupView(vm: vm, networkMonitor: vm2, firstFavGroup: "", secondFavGroup: "", thirdFavGroup: "")
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ struct SelectingVPKView: View {
|
||||
@FocusState private var isFocused: Bool
|
||||
@State private var text: String = ""
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
@State private var isLoading = false
|
||||
@State private var searchTask: DispatchWorkItem?
|
||||
@StateObject private var serchGroupsVM = SearchGroupsViewModel()
|
||||
@ -94,9 +95,13 @@ struct SelectingVPKView: View {
|
||||
)
|
||||
Spacer()
|
||||
if isLoading {
|
||||
LoadingView(isLoading: $isLoading)
|
||||
LoadingView()
|
||||
Spacer()
|
||||
} else if networkMonitor.isConnected {
|
||||
ListOfGroupsView(vm: vm, serchGroupsVM: serchGroupsVM, firstFavVPK: firstFavVPK, secondFavVPK: secondFavVPK, thirdFavVPK: thirdFavVPK)
|
||||
} else {
|
||||
ConnectingToNetworkView()
|
||||
}
|
||||
ListOfGroupsView(vm: vm, serchGroupsVM: serchGroupsVM, firstFavVPK: firstFavVPK, secondFavVPK: secondFavVPK, thirdFavVPK: thirdFavVPK)
|
||||
}
|
||||
.padding(.horizontal, 10)
|
||||
.background(Color("background"))
|
||||
@ -108,5 +113,6 @@ struct SelectingVPKView: View {
|
||||
|
||||
#Preview {
|
||||
@Previewable @StateObject var vm = ScheduleViewModel()
|
||||
SelectingVPKView(vm: vm, firstFavVPK: "", secondFavVPK: "", thirdFavVPK: "")
|
||||
@Previewable @StateObject var vm2 = NetworkMonitor()
|
||||
SelectingVPKView(vm: vm, networkMonitor: vm2, firstFavVPK: "", secondFavVPK: "", thirdFavVPK: "")
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import SwiftUI
|
||||
|
||||
struct SettingsView: View {
|
||||
@ObservedObject var vm: ScheduleViewModel
|
||||
@ObservedObject var networkMonitor: NetworkMonitor
|
||||
@State private var selectedTheme = "Светлая"
|
||||
@State private var selectedLanguage = "Русский"
|
||||
var body: some View {
|
||||
@ -28,7 +29,7 @@ struct SettingsView: View {
|
||||
.font(.custom("Montserrat-Medium", fixedSize: 18))
|
||||
.foregroundColor(Color("customGray3"))
|
||||
.padding(.horizontal)
|
||||
ScheduleGroupSettings(vm: vm)
|
||||
ScheduleGroupSettings(vm: vm, networkMonitor: networkMonitor)
|
||||
}
|
||||
.padding(.top, 20)
|
||||
}
|
||||
@ -42,5 +43,6 @@ struct SettingsView: View {
|
||||
|
||||
#Preview {
|
||||
@Previewable @StateObject var vm = ScheduleViewModel()
|
||||
SettingsView(vm: vm)
|
||||
@Previewable @StateObject var vm2 = NetworkMonitor()
|
||||
SettingsView(vm: vm, networkMonitor: vm2)
|
||||
}
|
||||
|
Reference in New Issue
Block a user