mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:44:05 +00:00
Accept current autocorrection/suggestion before sending a message (#3219)
* Fixes #3216 - Accept current autocorrection/suggestion before sending a message. * Switch from a temporary textField to `inputDelegate` selection changes
This commit is contained in:
@@ -137,7 +137,7 @@ struct ComposerToolbar: View {
|
||||
|
||||
private var sendButton: some View {
|
||||
Button {
|
||||
context.send(viewAction: .sendMessage)
|
||||
sendMessage()
|
||||
} label: {
|
||||
CompoundIcon(context.viewState.composerMode.isEdit ? \.check : \.sendSolid)
|
||||
.scaledPadding(6, relativeTo: .title)
|
||||
@@ -156,12 +156,13 @@ struct ComposerToolbar: View {
|
||||
|
||||
private var messageComposer: some View {
|
||||
MessageComposer(plainComposerText: $context.plainComposerText,
|
||||
presendCallback: $context.presendCallback,
|
||||
composerView: composerView,
|
||||
mode: context.viewState.composerMode,
|
||||
composerFormattingEnabled: context.composerFormattingEnabled,
|
||||
showResizeGrabber: context.composerFormattingEnabled,
|
||||
isExpanded: $context.composerExpanded) {
|
||||
context.send(viewAction: .sendMessage)
|
||||
sendMessage()
|
||||
} editAction: {
|
||||
context.send(viewAction: .editLastMessage)
|
||||
} pasteAction: { provider in
|
||||
@@ -205,6 +206,17 @@ struct ComposerToolbar: View {
|
||||
}
|
||||
}
|
||||
|
||||
private func sendMessage() {
|
||||
// Allow the inner TextField do apply any final processing before
|
||||
// sending e.g. accepting current autocorrection.
|
||||
// Fixes https://github.com/element-hq/element-x-ios/issues/3216
|
||||
context.presendCallback?()
|
||||
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
||||
context.send(viewAction: .sendMessage)
|
||||
}
|
||||
}
|
||||
|
||||
private var placeholder: String {
|
||||
switch context.viewState.composerMode {
|
||||
case .reply(_, _, let isThread):
|
||||
|
||||
Reference in New Issue
Block a user