fix message input quoted message
This commit is contained in:
@@ -40,7 +40,10 @@ class MessageInputController extends ValueNotifier<Message> {
|
||||
MessageInputController._({
|
||||
required Message initialMessage,
|
||||
}) : _textEditingController =
|
||||
TextEditingController(text: initialMessage.text),
|
||||
TextEditingController.fromValue(TextEditingValue(
|
||||
text: initialMessage.text ?? '',
|
||||
composing: TextRange.collapsed(initialMessage.text?.length ?? 0),
|
||||
)),
|
||||
_initialMessage = initialMessage,
|
||||
super(initialMessage) {
|
||||
addListener(_textEditingSyncer);
|
||||
@@ -83,6 +86,22 @@ class MessageInputController extends ValueNotifier<Message> {
|
||||
value = message;
|
||||
}
|
||||
|
||||
/// Sets the message that's being quoted.
|
||||
set quotedMessage(Message message) {
|
||||
value = value.copyWith(
|
||||
quotedMessage: message,
|
||||
quotedMessageId: message.id,
|
||||
);
|
||||
}
|
||||
|
||||
/// Clears the quoted message.
|
||||
void clearQuotedMessage() {
|
||||
value = value.copyWith(
|
||||
quotedMessageId: null,
|
||||
quotedMessage: null,
|
||||
);
|
||||
}
|
||||
|
||||
/// Sets a command for the message.
|
||||
set command(Command command) {
|
||||
value = value.copyWith(
|
||||
|
||||
@@ -3,28 +3,12 @@ import 'package:stream_chat_flutter_core/stream_chat_flutter_core.dart';
|
||||
|
||||
void main() {
|
||||
testWidgets(
|
||||
'should instantiate a new MessageInputController with default validator'
|
||||
' and empty message',
|
||||
'should instantiate a new MessageInputController with empty message',
|
||||
(tester) async {
|
||||
final controller = MessageInputController();
|
||||
final controller = MessageInputController()..text = 'test';
|
||||
|
||||
expect(controller.isValid, false);
|
||||
controller.text = 'test';
|
||||
expect(controller.isValid, true);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'should instantiate a new MessageInputController with default validator'
|
||||
' and specified message',
|
||||
(tester) async {
|
||||
final message = Message(text: 'test');
|
||||
final controller = MessageInputController(
|
||||
message: message,
|
||||
);
|
||||
|
||||
expect(controller.message, message);
|
||||
expect(controller.isValid, true);
|
||||
expect(controller.text, 'test');
|
||||
expect(controller.message.text, 'test');
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user