Skip to content

Commit 9a54cbb

Browse files
Matthieu-dglPhilippeWeidmann
authored andcommitted
feat: Can't collapse single message
1 parent dfb9b99 commit 9a54cbb

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

Mail/Views/Thread/Message/MessageView.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ struct MessageView: View {
4141

4242
@ObservedRealmObject var message: Message
4343

44+
private let isSingleMessage: Bool
45+
4446
private var isRemoteContentBlocked: Bool {
4547
return (UserDefaults.shared.displayExternalContent == .askMe || message.folder?.role == .spam)
4648
&& !message.localSafeDisplay
@@ -50,13 +52,20 @@ struct MessageView: View {
5052
threadForcedExpansion[message.uid] == .expanded
5153
}
5254

55+
init(threadForcedExpansion: Binding<[String: MessageExpansionType]>, message: Message, isSingleMessage: Bool) {
56+
_threadForcedExpansion = threadForcedExpansion
57+
self.message = message
58+
self.isSingleMessage = isSingleMessage
59+
}
60+
5361
var body: some View {
5462
VStack(spacing: 0) {
5563
MessageHeaderView(
5664
message: message,
5765
isMessageExpanded: Binding(get: {
5866
isMessageExpanded
5967
}, set: { newValue in
68+
guard !isSingleMessage else { return }
6069
threadForcedExpansion[message.uid] = newValue ? .expanded : .collapsed
6170
})
6271
)
@@ -97,14 +106,16 @@ struct MessageView: View {
97106
#Preview("Message collapsed", traits: .sizeThatFitsLayout) {
98107
MessageView(
99108
threadForcedExpansion: .constant([PreviewHelper.sampleMessage.uid: .collapsed]),
100-
message: PreviewHelper.sampleMessage
109+
message: PreviewHelper.sampleMessage,
110+
isSingleMessage: true
101111
)
102112
}
103113

104114
@available(iOS 17.0, *)
105115
#Preview("Message expanded", traits: .sizeThatFitsLayout) {
106116
MessageView(
107117
threadForcedExpansion: .constant([PreviewHelper.sampleMessage.uid: .expanded]),
108-
message: PreviewHelper.sampleMessage
118+
message: PreviewHelper.sampleMessage,
119+
isSingleMessage: false
109120
)
110121
}

Mail/Views/Thread/MessageListView.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ struct MessageListView: View {
4949
}
5050
} else if messageExpansion[message.uid] != .superCollapsed {
5151
VStack(spacing: 0) {
52-
MessageView(threadForcedExpansion: $messageExpansion, message: message)
52+
MessageView(
53+
threadForcedExpansion: $messageExpansion,
54+
message: message,
55+
isSingleMessage: messages.count == 1
56+
)
5357
if divider(for: message) {
5458
IKDivider(type: .full)
5559
}

MailNotificationContentExtension/NotificationViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class NotificationViewController: UIViewController, UNNotificationContentExtensi
9393

9494
let messageWorker = MessagesWorker(mailboxManager: mailboxManager)
9595
let messageView = ScrollView {
96-
MessageView(threadForcedExpansion: .constant([messageUid: .expanded]), message: message)
96+
MessageView(threadForcedExpansion: .constant([messageUid: .expanded]), message: message, isSingleMessage: true)
9797
.environment(\.isMessageInteractive, false)
9898
.environment(\.currentUser, MandatoryEnvironmentContainer(value: currentUser))
9999
.environmentObject(mailboxManager)

0 commit comments

Comments
 (0)