add refresh chat msg
This commit is contained in:
parent
49ac88c23c
commit
da5f198d8c
@ -28,11 +28,11 @@ struct TopBarView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var statusMessage: String? {
|
private var statusMessage: String? {
|
||||||
if viewModel.socketState != .connected {
|
|
||||||
return NSLocalizedString("Подключение", comment: "")
|
|
||||||
}
|
|
||||||
if viewModel.chatLoadingState == .loading {
|
if viewModel.chatLoadingState == .loading {
|
||||||
return NSLocalizedString("Загрузка чатов", comment: "")
|
return NSLocalizedString("Загрузка чатов", comment: "")
|
||||||
|
} else
|
||||||
|
if viewModel.socketState != .connected {
|
||||||
|
return NSLocalizedString("Подключение", comment: "")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import UIKit
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct ChatsTab: View {
|
struct ChatsTab: View {
|
||||||
var currentUserId: String?
|
@ObservedObject private var loginViewModel: LoginViewModel
|
||||||
@Binding var searchRevealProgress: CGFloat
|
@Binding var searchRevealProgress: CGFloat
|
||||||
@Binding var searchText: String
|
@Binding var searchText: String
|
||||||
private let searchService = SearchService()
|
private let searchService = SearchService()
|
||||||
@ -33,8 +33,13 @@ struct ChatsTab: View {
|
|||||||
|
|
||||||
private let searchRevealDistance: CGFloat = 90
|
private let searchRevealDistance: CGFloat = 90
|
||||||
|
|
||||||
init(currentUserId: String? = nil, searchRevealProgress: Binding<CGFloat>, searchText: Binding<String>) {
|
private var currentUserId: String? {
|
||||||
self.currentUserId = currentUserId
|
let userId = loginViewModel.userId
|
||||||
|
return userId.isEmpty ? nil : userId
|
||||||
|
}
|
||||||
|
|
||||||
|
init(loginViewModel: LoginViewModel, searchRevealProgress: Binding<CGFloat>, searchText: Binding<String>) {
|
||||||
|
self._loginViewModel = ObservedObject(wrappedValue: loginViewModel)
|
||||||
self._searchRevealProgress = searchRevealProgress
|
self._searchRevealProgress = searchRevealProgress
|
||||||
self._searchText = searchText
|
self._searchText = searchText
|
||||||
}
|
}
|
||||||
@ -108,16 +113,14 @@ struct ChatsTab: View {
|
|||||||
HStack(alignment: .top, spacing: 8) {
|
HStack(alignment: .top, spacing: 8) {
|
||||||
Image(systemName: "exclamationmark.triangle.fill")
|
Image(systemName: "exclamationmark.triangle.fill")
|
||||||
.foregroundColor(.orange)
|
.foregroundColor(.orange)
|
||||||
|
|
||||||
Text(message)
|
Text(message)
|
||||||
.font(.subheadline)
|
.font(.subheadline)
|
||||||
.foregroundColor(.orange)
|
.foregroundColor(.orange)
|
||||||
Spacer(minLength: 0)
|
Spacer(minLength: 0)
|
||||||
|
Button(action: triggerChatsReload) {
|
||||||
// Button(action: triggerChatsReload) {
|
Text(NSLocalizedString("Обновить", comment: ""))
|
||||||
// Text(NSLocalizedString("Обновить", comment: ""))
|
.font(.subheadline)
|
||||||
// .font(.subheadline)
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
.padding(.vertical, 4)
|
.padding(.vertical, 4)
|
||||||
}
|
}
|
||||||
@ -387,6 +390,9 @@ struct ChatsTab: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func triggerChatsReload() {
|
private func triggerChatsReload() {
|
||||||
|
if loginViewModel.chatLoadingState != .loading {
|
||||||
|
loginViewModel.chatLoadingState = .loading
|
||||||
|
}
|
||||||
viewModel.loadInitialChats(force: true)
|
viewModel.loadInitialChats(force: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1144,10 +1150,15 @@ struct ChatsTab_Previews: PreviewProvider {
|
|||||||
struct Wrapper: View {
|
struct Wrapper: View {
|
||||||
@State private var progress: CGFloat = 1
|
@State private var progress: CGFloat = 1
|
||||||
@State private var searchText: String = ""
|
@State private var searchText: String = ""
|
||||||
|
@StateObject private var loginViewModel = LoginViewModel()
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
ChatsTab(searchRevealProgress: $progress, searchText: $searchText)
|
ChatsTab(
|
||||||
.environmentObject(ThemeManager())
|
loginViewModel: loginViewModel,
|
||||||
|
searchRevealProgress: $progress,
|
||||||
|
searchText: $searchText
|
||||||
|
)
|
||||||
|
.environmentObject(ThemeManager())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@ struct MainView: View {
|
|||||||
.opacity(selectedTab == 1 ? 1 : 0)
|
.opacity(selectedTab == 1 ? 1 : 0)
|
||||||
|
|
||||||
ChatsTab(
|
ChatsTab(
|
||||||
currentUserId: viewModel.userId.isEmpty ? nil : viewModel.userId,
|
loginViewModel: viewModel,
|
||||||
searchRevealProgress: $chatSearchRevealProgress,
|
searchRevealProgress: $chatSearchRevealProgress,
|
||||||
searchText: $chatSearchText
|
searchText: $chatSearchText
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user