getCommonOptions method

  1. @override
List<CometChatMessageOption> getCommonOptions(
  1. User loggedInUser,
  2. BaseMessage messageObject,
  3. BuildContext context,
  4. Group? group,
  5. AdditionalConfigurations? additionalConfigurations,
)
override

override this to alter options for messages of every type

Implementation

@override
List<CometChatMessageOption> getCommonOptions(User loggedInUser,
    BaseMessage messageObject,
    BuildContext context,
    Group? group,
    AdditionalConfigurations? additionalConfigurations) {
  List<CometChatMessageOption> messageOptionList = [];
  final colorPalette = CometChatThemeHelper.getColorPalette(context);
  final typography = CometChatThemeHelper.getTypography(context);
  final style = additionalConfigurations?.messageOptionSheetStyle;

  // 🚫 Moderation Disapproved: Only return DELETE if allowed
  if (messageObject.sender?.uid == loggedInUser.uid && ModerationCheckUtil.instance.isMessageDisapprovedFromModeration(messageObject)) {
    if (additionalConfigurations?.hideDeleteMessageOption != true &&
        _validateOption(loggedInUser, messageObject, context, group,
            MessageOptionConstants.deleteMessage)) {
      messageOptionList.add(
          getDeleteOption(context, colorPalette, typography, style));
    }
    return messageOptionList; // ✅ Only delete option is returned
  }

  if (additionalConfigurations?.hideReplyInThreadOption != true &&
      _validateOption(loggedInUser, messageObject, context, group,
          MessageOptionConstants.replyInThreadMessage)) {
    messageOptionList.add(
        getReplyInThreadOption(context, colorPalette, typography, style));
  }

  if (additionalConfigurations?.hideShareMessageOption != true &&
      _validateOption(loggedInUser, messageObject, context, group,
          MessageOptionConstants.shareMessage)) {
    messageOptionList
        .add(getShareOption(context, colorPalette, typography, style));
  }

  if (additionalConfigurations?.hideMessageInfoOption != true &&
      _validateOption(loggedInUser, messageObject, context, group,
          MessageOptionConstants.messageInformation)) {
    messageOptionList
        .add(getMessageInfo(context, colorPalette, typography, style));
  }

  if (additionalConfigurations?.hideDeleteMessageOption != true &&
      _validateOption(loggedInUser, messageObject, context, group,
          MessageOptionConstants.deleteMessage)) {
    messageOptionList
        .add(getDeleteOption(context, colorPalette, typography, style));
  }

  if (additionalConfigurations?.hideMessagePrivatelyOption != true &&
      _validateOption(loggedInUser, messageObject, context, group,
          MessageOptionConstants.sendMessagePrivately)) {
    messageOptionList.add(
        getSendMessagePrivately(context, colorPalette, typography, style));
  }

  return messageOptionList;
}