getCommonOptions method
List<CometChatMessageOption>
getCommonOptions(
- User loggedInUser,
- BaseMessage messageObject,
- BuildContext context,
- Group? group,
- 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;
}