buildLastMessageItem method
Implementation
FutureBuilder<ChatMessageModel> buildLastMessageItem() {
// LogMessage.d("buildLastMessageItem: ", item.jid);
return FutureBuilder(
key: ValueKey(item.lastMessageId),
future: getMessageOfId(item.lastMessageId.checkNull()),
builder: (context, data) {
// LogMessage.d("getMessageOfId future", "${item.lastMessageId.checkNull()} : ${data.data?.messageId}");
if (data.hasData && data.data != null && !data.hasError) {
var chat = data.data!;
return Row(
children: [
checkSenderShouldShow(chat)
? Flexible(
child: Text(
"${chat.senderUserName.checkNull()}:",
style: recentChatItemStyle
.subtitleTextStyle, //Theme.of(context).textTheme.titleSmall,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
)
: const SizedBox.shrink(),
chat.isMessageRecalled.value
? const SizedBox.shrink()
: MessageUtils.forMessageTypeIcon(
chat.messageType, chat.mediaChatMessage),
SizedBox(
width: chat.isMessageRecalled.value
? 0.0
: MessageUtils.forMessageTypeString(chat.messageType,
content:
chat.messageTextContent.checkNull()) !=
null
? 3.0
: 0.0,
),
Expanded(
child: spanTxt.isEmpty
? Text(
chat.isMessageRecalled.value
? setRecalledMessageText(chat.isMessageSentByMe)
: MessageUtils.forMessageTypeString(
chat.messageType,
content: chat
.mediaChatMessage?.mediaCaptionText
.checkNull()) ??
chat.messageTextContent.checkNull(),
style: recentChatItemStyle
.subtitleTextStyle, //Theme.of(context).textTheme.titleSmall,
maxLines: 1,
overflow: TextOverflow.ellipsis,
)
: spannableText(
chat.isMessageRecalled.value
? setRecalledMessageText(chat.isMessageSentByMe)
: MessageUtils.forMessageTypeString(
chat.messageType.checkNull(),
content: chat
.mediaChatMessage?.mediaCaptionText
.checkNull()) ??
chat.messageTextContent.checkNull(),
spanTxt,
recentChatItemStyle.subtitleTextStyle,
recentChatItemStyle
.spanTextColor) //Theme.of(context).textTheme.titleSmall),
),
],
);
}
return const SizedBox(
height: 15,
);
});
}