Fix #3639 - Reorder timeline item menu options

This commit is contained in:
Stefan Ceriu 2024-12-19 09:42:18 +02:00
parent e7cc807084
commit 21a15936a9
45 changed files with 101 additions and 102 deletions

View File

@ -43,6 +43,10 @@ struct TimelineItemMenuActionProvider {
actions.append(.viewInRoomTimeline)
}
if canRedactItem(item), let poll = item.pollIfAvailable, !poll.hasEnded, let eventID = item.id.eventID {
actions.append(.endPoll(pollStartID: eventID))
}
if item.canBeRepliedTo {
if let messageItem = item as? EventBasedMessageTimelineItemProtocol {
actions.append(.reply(isThread: messageItem.isThreaded))
@ -55,14 +59,6 @@ struct TimelineItemMenuActionProvider {
actions.append(.forward(itemID: item.id))
}
if canCurrentUserPin, let eventID = item.id.eventID {
actions.append(pinnedEventIDs.contains(eventID) ? .unpin : .pin)
}
if item.isRemoteMessage {
actions.append(.copyPermalink)
}
if item.isEditable {
if item.supportsMediaCaption {
if item.hasMediaCaption {
@ -77,6 +73,14 @@ struct TimelineItemMenuActionProvider {
}
}
if item.isRemoteMessage {
actions.append(.copyPermalink)
}
if canCurrentUserPin, let eventID = item.id.eventID {
actions.append(pinnedEventIDs.contains(eventID) ? .unpin : .pin)
}
if item.isCopyable {
actions.append(.copy)
} else if item.hasMediaCaption {
@ -87,10 +91,6 @@ struct TimelineItemMenuActionProvider {
actions.append(.removeCaption)
}
if canRedactItem(item), let poll = item.pollIfAvailable, !poll.hasEnded, let eventID = item.id.eventID {
actions.append(.endPoll(pollStartID: eventID))
}
if isViewSourceEnabled {
actions.append(.viewSource)
}
@ -131,7 +131,6 @@ struct TimelineItemMenuActionProvider {
private func makeEncryptedItemActions(_ encryptedItem: EncryptedRoomTimelineItem) -> TimelineItemMenuActions? {
var actions: [TimelineItemMenuAction] = [.copyPermalink]
var secondaryActions: [TimelineItemMenuAction] = []
if isViewSourceEnabled {
actions.append(.viewSource)
@ -139,7 +138,7 @@ struct TimelineItemMenuActionProvider {
return .init(isReactable: false,
actions: actions,
secondaryActions: secondaryActions,
secondaryActions: [],
emojiProvider: emojiProvider)
}