fix: return text field to the previous state after editing message

This commit is contained in:
Inex Code 2020-10-23 15:45:22 +00:00 committed by Christian Pauly
parent 4bf3861553
commit 08e61c0db1
2 changed files with 12 additions and 3 deletions

View file

@ -18,6 +18,7 @@
- Show device name in account information correctly
- Fix tapping on aliases / room pills not always working
- Link clicking in web not always working
- Return message input field to previous state after editing message - Thanks @inexcode
# Version 0.19.0 - 2020-09-21
### Features

View file

@ -98,6 +98,8 @@ class _ChatState extends State<_Chat> {
String inputText = '';
String pendingText = '';
bool get _canLoadMore => timeline.events.last.type != EventTypes.RoomCreate;
void requestHistory() async {
@ -202,12 +204,13 @@ class _ChatState extends State<_Chat> {
if (sendController.text.isEmpty) return;
room.sendTextEvent(sendController.text,
inReplyTo: replyEvent, editEventId: editEvent?.eventId);
sendController.text = '';
sendController.text = pendingText;
setState(() {
inputText = '';
inputText = pendingText;
replyEvent = null;
editEvent = null;
pendingText = '';
});
}
@ -522,8 +525,9 @@ class _ChatState extends State<_Chat> {
icon: Icon(Icons.edit),
onPressed: () {
setState(() {
pendingText = sendController.text;
editEvent = selectedEvents.first;
sendController.text = editEvent
inputText = sendController.text = editEvent
.getDisplayEvent(timeline)
.getLocalizedBody(MatrixLocals(L10n.of(context)),
withSenderNamePrefix: false, hideReply: true);
@ -787,6 +791,10 @@ class _ChatState extends State<_Chat> {
IconButton(
icon: Icon(Icons.close),
onPressed: () => setState(() {
if (editEvent != null) {
inputText = sendController.text = pendingText;
pendingText = '';
}
replyEvent = null;
editEvent = null;
}),