CustomMessage.create constructor

CustomMessage.create(
  1. String kind,
  2. Map data, {
  3. String? roomId,
  4. MessageExtra? extra,
  5. String? id,
  6. String? senderId,
  7. String? replyId,
  8. ChatValueTimestamp? createdAt,
})

Implementation

factory CustomMessage.create(
  String kind,
  Map data, {
  String? roomId,
  MessageExtra? extra,
  String? id,
  String? senderId,
  String? replyId,
  ChatValueTimestamp? createdAt,
}) {
  senderId ??= RoomManager.i.me;
  if (senderId.isEmpty) return const CustomMessage.empty();
  id ??= ChatHelper.generateMessageId();
  createdAt ??= ChatValueTimestamp.now();
  return CustomMessage._(
    id: id,
    roomId: roomId ?? '',
    senderId: senderId,
    replyId: replyId,
    createdAt: createdAt,
    updatedAt: createdAt,
    extra: extra ?? {},
    statuses: {senderId: MessageStatus.sending},
    data: data,
    kind: kind,
  );
}