add alert in chat
This commit is contained in:
parent
28d2525e4a
commit
452ccfacd6
@ -598,6 +598,9 @@
|
|||||||
},
|
},
|
||||||
"Добро пожаловать в Yobble!" : {
|
"Добро пожаловать в Yobble!" : {
|
||||||
|
|
||||||
|
},
|
||||||
|
"Дождитесь отправки предыдущего сообщения." : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Дополнительные действия." : {
|
"Дополнительные действия." : {
|
||||||
"comment" : "Message profile more action description"
|
"comment" : "Message profile more action description"
|
||||||
@ -1910,6 +1913,9 @@
|
|||||||
},
|
},
|
||||||
"Ошибка в данных. Проверьте введённую информацию." : {
|
"Ошибка в данных. Проверьте введённую информацию." : {
|
||||||
|
|
||||||
|
},
|
||||||
|
"Ошибка отправки" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Ошибка при деавторизации." : {
|
"Ошибка при деавторизации." : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
|||||||
@ -6,6 +6,7 @@ final class PrivateChatViewModel: ObservableObject {
|
|||||||
@Published private(set) var isInitialLoading: Bool = false
|
@Published private(set) var isInitialLoading: Bool = false
|
||||||
@Published private(set) var isLoadingMore: Bool = false
|
@Published private(set) var isLoadingMore: Bool = false
|
||||||
@Published var errorMessage: String?
|
@Published var errorMessage: String?
|
||||||
|
@Published var sendingErrorMessage: String?
|
||||||
@Published private(set) var isSending: Bool = false
|
@Published private(set) var isSending: Bool = false
|
||||||
@Published private(set) var hasMore: Bool = true
|
@Published private(set) var hasMore: Bool = true
|
||||||
|
|
||||||
@ -74,11 +75,12 @@ final class PrivateChatViewModel: ObservableObject {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
guard trimmed.count <= maxMessageLength else {
|
guard trimmed.count <= maxMessageLength else {
|
||||||
errorMessage = NSLocalizedString("Сообщение слишком длинное.", comment: "")
|
sendingErrorMessage = NSLocalizedString("Сообщение слишком длинное.", comment: "")
|
||||||
completion(false)
|
completion(false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
guard !isSending else {
|
guard !isSending else {
|
||||||
|
sendingErrorMessage = NSLocalizedString("Дождитесь отправки предыдущего сообщения.", comment: "")
|
||||||
completion(false)
|
completion(false)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -88,6 +90,7 @@ final class PrivateChatViewModel: ObservableObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
isSending = true
|
isSending = true
|
||||||
|
sendingErrorMessage = nil
|
||||||
|
|
||||||
chatService.sendPrivateMessage(chatId: chatId, content: trimmed) { [weak self] result in
|
chatService.sendPrivateMessage(chatId: chatId, content: trimmed) { [weak self] result in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
@ -113,7 +116,7 @@ final class PrivateChatViewModel: ObservableObject {
|
|||||||
self.errorMessage = nil
|
self.errorMessage = nil
|
||||||
completion(true)
|
completion(true)
|
||||||
case .failure(let error):
|
case .failure(let error):
|
||||||
self.errorMessage = self.message(for: error)
|
self.sendingErrorMessage = self.message(for: error)
|
||||||
completion(false)
|
completion(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,6 +66,14 @@ struct PrivateChatView: View {
|
|||||||
}
|
}
|
||||||
.hidden()
|
.hidden()
|
||||||
}
|
}
|
||||||
|
.alert("Ошибка отправки", isPresented: Binding(
|
||||||
|
get: { viewModel.sendingErrorMessage != nil },
|
||||||
|
set: { if !$0 { viewModel.sendingErrorMessage = nil } }
|
||||||
|
), actions: {
|
||||||
|
Button("OK") { }
|
||||||
|
}, message: {
|
||||||
|
Text(viewModel.sendingErrorMessage ?? "Не удалось отправить сообщение.")
|
||||||
|
})
|
||||||
.navigationTitle(toolbarTitle)
|
.navigationTitle(toolbarTitle)
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
// .navigationBarBackButtonHidden(true)
|
// .navigationBarBackButtonHidden(true)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user