mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 02:58:07 +00:00
Open keyboard when replying to a message
This commit is contained in:
parent
1910536fd6
commit
5b4d1bee69
3 changed files with 22 additions and 9 deletions
|
|
@ -444,8 +444,13 @@ struct ConversationFragment: View {
|
|||
ZStack(alignment: .bottomTrailing) {
|
||||
UIList(
|
||||
geometryProxy: geometry,
|
||||
sections: conversationViewModel.conversationMessagesSection
|
||||
)
|
||||
sections: conversationViewModel.conversationMessagesSection,
|
||||
isMessageTextFocused: Binding(get: {
|
||||
isMessageTextFocused
|
||||
}, set: { newValue in
|
||||
isMessageTextFocused = newValue
|
||||
})
|
||||
)
|
||||
.environmentObject(conversationViewModel)
|
||||
.environmentObject(conversationsListViewModel)
|
||||
}
|
||||
|
|
@ -1095,7 +1100,10 @@ struct ConversationFragment: View {
|
|||
Button {
|
||||
let indexMessage = conversationViewModel.conversationMessagesSection[0].rows.firstIndex(where: {$0.message.id == conversationViewModel.selectedMessage!.message.id})
|
||||
conversationViewModel.selectedMessage = nil
|
||||
conversationViewModel.replyToMessage(index: indexMessage ?? 0)
|
||||
if !isMessageTextFocused {
|
||||
isMessageTextFocused = true
|
||||
}
|
||||
conversationViewModel.replyToMessage(index: indexMessage ?? 0, isMessageTextFocused: isMessageTextFocused)
|
||||
} label: {
|
||||
HStack {
|
||||
Text("menu_reply_to_chat_message")
|
||||
|
|
|
|||
|
|
@ -108,6 +108,8 @@ struct UIList: UIViewRepresentable {
|
|||
|
||||
let geometryProxy: GeometryProxy
|
||||
let sections: [MessagesSection]
|
||||
|
||||
@Binding var isMessageTextFocused: Bool
|
||||
|
||||
@State private var isScrolledToTop = false
|
||||
@State private var isScrolledToBottom = true
|
||||
|
|
@ -501,7 +503,10 @@ struct UIList: UIViewRepresentable {
|
|||
|
||||
func tableView(_ tableView: UITableView, leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
|
||||
let archiveAction = UIContextualAction(style: .normal, title: "") { _, _, completionHandler in
|
||||
self.parent.conversationViewModel.replyToMessage(index: indexPath.row)
|
||||
if !self.parent.isMessageTextFocused {
|
||||
self.parent.isMessageTextFocused = true
|
||||
}
|
||||
self.parent.conversationViewModel.replyToMessage(index: indexPath.row, isMessageTextFocused: self.parent.isMessageTextFocused)
|
||||
completionHandler(true)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1547,13 +1547,13 @@ class ConversationViewModel: ObservableObject {
|
|||
conversationMessagesSection = []
|
||||
}
|
||||
|
||||
func replyToMessage(index: Int) {
|
||||
func replyToMessage(index: Int, isMessageTextFocused: Bool) {
|
||||
coreContext.doOnCoreQueue { _ in
|
||||
let messageToReplyTmp = self.conversationMessagesSection[0].rows[index]
|
||||
DispatchQueue.main.async {
|
||||
withAnimation(.linear(duration: 0.15)) {
|
||||
self.messageToReply = messageToReplyTmp
|
||||
}
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + (isMessageTextFocused ? 0 : 0.22)){
|
||||
withAnimation(.linear(duration: 0.15)) {
|
||||
self.messageToReply = messageToReplyTmp
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue