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