checkAndShowReplies method

dynamic checkAndShowReplies(
  1. TextMessage textMessage
)

Implementation

checkAndShowReplies(TextMessage textMessage) {
  List<String> replies = getReplies(textMessage);

  String? uid;
  String? guid;
  if (textMessage.receiver is User) {
    uid = (textMessage.sender as User).uid;
  } else {
    guid = (textMessage.receiver as Group).guid;
  }

  Map<String, dynamic> id =
      UIEventUtils.createMap(uid, guid, textMessage.parentMessageId);

  if (replies.isEmpty) {
    CometChatUIEvents.hidePanel(id, CustomUIPosition.messageListBottom);
    return;
  }

  onCloseTap() {
    CometChatUIEvents.hidePanel(id, CustomUIPosition.messageListBottom);
  }

  onCLick(String reply) {
    CometChatUIEvents.hidePanel(id, CustomUIPosition.messageListBottom);

    String receiverUid;
    if (textMessage.receiverType == CometChatReceiverType.user) {
      receiverUid = (textMessage.sender!.uid);
    } else {
      receiverUid = (textMessage.receiver as Group).guid;
    }

    TextMessage sendingMessage = TextMessage(
        text: reply,
        receiverUid: receiverUid,
        type: CometChatMessageType.text,
        receiverType: textMessage.receiverType,
        sender: loggedInUser,
        parentMessageId: textMessage.parentMessageId,
        muid: DateTime.now().microsecondsSinceEpoch.toString(),
        category: CometChatMessageCategory.message);

    CometChatUIKit.sendTextMessage(sendingMessage);
  }

  CometChatUIEvents.showPanel(
      id,
      CustomUIPosition.messageListBottom,
      (context) => SmartReplyView(
            onCloseTap: onCloseTap,
            replies: replies,
            onClick: onCLick,
          ));
}