sendReply method
Sends a reply to a message in the Firestore. Accepts the original message being replied to, the partial reply message, and the room ID.
Implementation
Future<void> sendReply({
required mm.Message originalMessage,
required dynamic partialReply,
required String roomId,
}) async {
if (firebaseUser == null) return;
// Create the reply message with reference to the original
mm.Message? replyMessage;
if (partialReply is mm.PartialText) {
replyMessage = mm.TextMessage.fromPartial(
author: mm.User(id: firebaseUser!.uid),
id: '',
partialText: partialReply,
).copyWith(
repliedMessage: originalMessage,
);
} else if (partialReply is mm.PartialImage) {
replyMessage = mm.ImageMessage.fromPartial(
author: mm.User(id: firebaseUser!.uid),
id: '',
partialImage: partialReply,
).copyWith(
repliedMessage: originalMessage,
metadata: {
...partialReply.metadata ?? {},
},
);
} else if (partialReply is mm.PartialFile) {
replyMessage = mm.FileMessage.fromPartial(
author: mm.User(id: firebaseUser!.uid),
id: '',
partialFile: partialReply,
).copyWith(
repliedMessage: originalMessage,
metadata: {
...partialReply.metadata ?? {},
},
);
} else if (partialReply is mm.PartialCustom) {
replyMessage = mm.CustomMessage.fromPartial(
author: mm.User(id: firebaseUser!.uid),
id: '',
partialCustom: partialReply,
).copyWith(
repliedMessage: originalMessage,
metadata: {
...partialReply.metadata ?? {},
},
);
}
if (replyMessage != null) {
// debugPrint("=> reply message : $replyMessage");
sendMessageReply(replyMessage, roomId);
} else {
// debugPrint("=> reply message : $replyMessage");
}
}