|
|
@ -105,6 +105,7 @@ extension ContextMenuVC {
|
|
|
|
for cellViewModel: MessageViewModel,
|
|
|
|
for cellViewModel: MessageViewModel,
|
|
|
|
recentEmojis: [EmojiWithSkinTones],
|
|
|
|
recentEmojis: [EmojiWithSkinTones],
|
|
|
|
currentUserIsOpenGroupModerator: Bool,
|
|
|
|
currentUserIsOpenGroupModerator: Bool,
|
|
|
|
|
|
|
|
currentThreadIsMessageRequest: Bool,
|
|
|
|
delegate: ContextMenuActionDelegate?
|
|
|
|
delegate: ContextMenuActionDelegate?
|
|
|
|
) -> [Action]? {
|
|
|
|
) -> [Action]? {
|
|
|
|
// No context items for info messages
|
|
|
|
// No context items for info messages
|
|
|
@ -156,6 +157,13 @@ extension ContextMenuVC {
|
|
|
|
currentUserIsOpenGroupModerator
|
|
|
|
currentUserIsOpenGroupModerator
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let shouldShowEmojiActions: Bool = {
|
|
|
|
|
|
|
|
if cellViewModel.threadVariant == .openGroup {
|
|
|
|
|
|
|
|
return OpenGroupManager.isOpenGroupSupport(.reactions, on: cellViewModel.threadOpenGroupServer)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return currentThreadIsMessageRequest
|
|
|
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
|
|
let generatedActions: [Action] = [
|
|
|
|
let generatedActions: [Action] = [
|
|
|
|
(canReply ? Action.reply(cellViewModel, delegate) : nil),
|
|
|
|
(canReply ? Action.reply(cellViewModel, delegate) : nil),
|
|
|
|
(canCopy ? Action.copy(cellViewModel, delegate) : nil),
|
|
|
|
(canCopy ? Action.copy(cellViewModel, delegate) : nil),
|
|
|
@ -165,7 +173,7 @@ extension ContextMenuVC {
|
|
|
|
(canBan ? Action.ban(cellViewModel, delegate) : nil),
|
|
|
|
(canBan ? Action.ban(cellViewModel, delegate) : nil),
|
|
|
|
(canBan ? Action.banAndDeleteAllMessages(cellViewModel, delegate) : nil),
|
|
|
|
(canBan ? Action.banAndDeleteAllMessages(cellViewModel, delegate) : nil),
|
|
|
|
]
|
|
|
|
]
|
|
|
|
.appending(contentsOf: recentEmojis.map { Action.react(cellViewModel, $0, delegate) })
|
|
|
|
.appending(contentsOf: (shouldShowEmojiActions ? recentEmojis : []).map { Action.react(cellViewModel, $0, delegate) })
|
|
|
|
.appending(Action.emojiPlusButton(cellViewModel, delegate))
|
|
|
|
.appending(Action.emojiPlusButton(cellViewModel, delegate))
|
|
|
|
.compactMap { $0 }
|
|
|
|
.compactMap { $0 }
|
|
|
|
|
|
|
|
|
|
|
|