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

@ -42,6 +42,10 @@ struct TimelineItemMenuActionProvider {
if timelineKind == .pinned || timelineKind == .media(.mediaFilesScreen) {
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 {
@ -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 {
@ -76,6 +72,14 @@ struct TimelineItemMenuActionProvider {
actions.append(.edit)
}
}
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)
@ -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,15 +131,14 @@ struct TimelineItemMenuActionProvider {
private func makeEncryptedItemActions(_ encryptedItem: EncryptedRoomTimelineItem) -> TimelineItemMenuActions? {
var actions: [TimelineItemMenuAction] = [.copyPermalink]
var secondaryActions: [TimelineItemMenuAction] = []
if isViewSourceEnabled {
actions.append(.viewSource)
}
return .init(isReactable: false,
actions: actions,
secondaryActions: secondaryActions,
secondaryActions: [],
emojiProvider: emojiProvider)
}