cwtch-ui/lib/models/message_draft.dart

45 lines
1.1 KiB
Dart
Raw Normal View History

2023-03-20 20:13:31 +00:00
import 'package:flutter/foundation.dart';
/// A "MessageDraft" structure that stores information about in-progress message drafts.
/// MessageDraft stores text, quoted replies, and attached images.
/// Only one draft is stored per conversation.
class MessageDraft extends ChangeNotifier {
String? _messageText;
QuotedReference? _quotedReference;
static MessageDraft empty() {
return MessageDraft();
}
bool isNotEmpty() {
return this._messageText != null || this._quotedReference != null;
}
String? get messageText => _messageText;
set messageText(String? text) {
this._messageText = text;
notifyListeners();
}
set quotedReference(int index) {
this._quotedReference = QuotedReference(index);
notifyListeners();
}
QuotedReference? getQuotedMessage() {
return this._quotedReference;
}
void clearQuotedReference() {
this._quotedReference = null;
notifyListeners();
}
}
/// A QuotedReference encapsulates the state of replied-to message.
class QuotedReference {
int index;
QuotedReference(this.index);
}