insertMessage method

void insertMessage({
  1. required MeshDocument thread,
  2. required ChatMessage message,
})

Implementation

void insertMessage({required MeshDocument thread, required ChatMessage message}) {
  final messages = thread.root.getChildren().whereType<MeshElement>().firstWhere((x) => x.tagName == "messages");

  final m = messages.createChildElement("message", {
    "id": message.id,
    "text": message.text,
    "created_at": DateTime.now().toUtc().toIso8601String(),
    "author_name": room.localParticipant!.getAttribute("name"),
    "author_ref": null,
  });

  for (final path in message.attachments) {
    m.createChildElement("file", {"path": path});
  }
}