@@ -79,14 +79,26 @@ extension Action: CaseIterable {
79
79
}
80
80
81
81
public var shouldDisableMultipleSelection : Bool {
82
- return ![ . openMovePanel, . saveThreadInkDrive, . shareMailLink, . reportJunk, . phishing, . block, . blockList, . snooze, . modifySnooze] . contains ( self )
82
+ return ![
83
+ . openMovePanel,
84
+ . saveThreadInkDrive,
85
+ . shareMailLink,
86
+ . reportJunk,
87
+ . phishing,
88
+ . block,
89
+ . blockList,
90
+ . snooze,
91
+ . modifySnooze
92
+ ] . contains ( self )
83
93
}
84
94
85
95
private static func actionsForMessage( _ message: Message , origin: ActionOrigin ,
86
96
userIsStaff: Bool ,
87
97
userEmail: String ) -> ( quickActions: [ Action ] , listActions: [ Action ] ) {
88
98
@LazyInjectService var platformDetector : PlatformDetectable
89
99
100
+ let snoozedActions = snoozedActions ( [ message] , folder: origin. frozenFolder)
101
+
90
102
var spamAction : Action ? {
91
103
guard !message. fromMe ( currentMailboxEmail: userEmail) else { return nil }
92
104
return message. folder? . role == . spam ? . nonSpam : . reportJunk
@@ -123,6 +135,8 @@ extension Action: CaseIterable {
123
135
. delete
124
136
]
125
137
138
+ let snoozedActions = snoozedActions ( messages, folder: originFolder)
139
+
126
140
var spamAction : Action ? {
127
141
let selfThread = messages. flatMap ( \. from) . allSatisfy { $0. isMeOrPlusMe ( currentMailboxEmail: userEmail) }
128
142
guard !selfThread else { return nil }
@@ -136,7 +150,9 @@ extension Action: CaseIterable {
136
150
. saveThreadInkDrive
137
151
]
138
152
139
- return ( quickActions, tempListActions. compactMap { $0 } )
153
+ let listActions = snoozedActions + tempListActions. compactMap { $0 }
154
+
155
+ return ( quickActions, listActions)
140
156
}
141
157
142
158
private static func actionsForMessagesInSameThreads( _ messages: [ Message ] , originFolder: Folder ? , userEmail: String )
@@ -168,7 +184,7 @@ extension Action: CaseIterable {
168
184
private static func snoozedActions( _ messages: [ Message ] , folder: Folder ? ) -> [ Action ] {
169
185
guard folder? . canAccessSnoozeActions == true else { return [ ] }
170
186
171
- let messagesFromFolder = messages. filter { $0. folder == folder }
187
+ let messagesFromFolder = messages. filter { $0. folder? . remoteId == folder? . remoteId }
172
188
guard !messagesFromFolder. isEmpty else { return [ ] }
173
189
174
190
if messagesFromFolder. allSatisfy ( \. isSnoozed) {
0 commit comments