getMessageAttachments method

List<Attachment> getMessageAttachments(
  1. PupauMessage message
)

Implementation

List<Attachment> getMessageAttachments(PupauMessage message) {
  List<PupauMessage> messages = Get.find<ChatController>().messages;
  List<Attachment> messageAttachments = [];
  List<PupauMessage> userMessages = messages
      .where((PupauMessage message) => message.status == MessageStatus.sent)
      .toList();
  if (userMessages.isEmpty) return [];
  int messageIndex = userMessages.indexWhere(
    (PupauMessage thisMessage) => thisMessage.id == message.id,
  );
  if (messageIndex == userMessages.length - 1) {
    messageAttachments = attachments
        .where((Attachment attachment) => attachment.previousQueryId == "")
        .toList();
  } else {
    PupauMessage nextMessage = userMessages[messageIndex + 1];
    messageAttachments = attachments
        .where(
          (Attachment attachment) =>
              attachment.previousQueryId == nextMessage.id,
        )
        .toList();
  }
  for (Attachment attachment in messageAttachments) {
    attachment.isShown = true;
  }
  return messageAttachments;
}