diff --git a/Mail/Views/Alerts/ExternalRecipientView.swift b/Mail/Views/Alerts/ExternalRecipientView.swift index e67b720828..22543af98b 100644 --- a/Mail/Views/Alerts/ExternalRecipientView.swift +++ b/Mail/Views/Alerts/ExternalRecipientView.swift @@ -24,13 +24,11 @@ import SwiftUI struct ExternalRecipientView: View { @Environment(\.dismiss) private var dismiss - @State public var externalTagSate: DisplayExternalRecipientStatus.State - + public var externalTagSate: DisplayExternalRecipientStatus.State public var isDraft: Bool var body: some View { VStack(alignment: .leading, spacing: 24) { - isDraft ? Text(MailResourcesStrings.Localizable.externalDialogTitleRecipient) .textStyle(.bodyMedium) : Text(MailResourcesStrings.Localizable.externalDialogTitleExpeditor) .textStyle(.bodyMedium) diff --git a/Mail/Views/New Message/ComposeMessageView.swift b/Mail/Views/New Message/ComposeMessageView.swift index ddfd15f997..50344804a5 100644 --- a/Mail/Views/New Message/ComposeMessageView.swift +++ b/Mail/Views/New Message/ComposeMessageView.swift @@ -73,7 +73,7 @@ struct ComposeMessageView: View { @State private var editorFocus = false @State private var currentSignature: Signature? @State private var initialAttachments = [Attachable]() - @State private var showExternalTag = true + @State private var isShowingExternalTag = true @State private var editorModel = RichTextEditorModel() @State private var scrollView: UIScrollView? @@ -245,7 +245,7 @@ struct ComposeMessageView: View { } } .safeAreaInset(edge: .bottom) { - if showExternalTag { + if isShowingExternalTag { let externalTag = draft.displayExternalTag(mailboxManager: mailboxManager) switch externalTag { case .many, .one: @@ -268,7 +268,7 @@ struct ComposeMessageView: View { Button { matomo.track(eventWithCategory: .externals, name: "bannerManuallyClosed") - showExternalTag = false + isShowingExternalTag = false } label: { MailResourcesAsset.closeSmall.swiftUIImage .resizable() @@ -277,7 +277,7 @@ struct ComposeMessageView: View { } } .frame(maxWidth: .infinity) - .padding() + .padding(16) .background(MailResourcesAsset.yellowColor.swiftUIColor) case .none: EmptyView() diff --git a/MailCore/Models/Recipient.swift b/MailCore/Models/Recipient.swift index 0c6dd35242..d9b066d8cf 100644 --- a/MailCore/Models/Recipient.swift +++ b/MailCore/Models/Recipient.swift @@ -91,6 +91,8 @@ public final class Recipient: EmbeddedObject, Codable { return email == recipient.email && name == recipient.name } + private static let mailerDeamonRegex = Regex(pattern: "mailer-daemon@(?:.+.)?infomaniak.ch") + public func isExternal(mailboxManager: MailboxManager) -> Bool { ///if the email adress is added manually by me, it's not considered as an external guard !isAddedByMe else { return false } @@ -100,8 +102,12 @@ public final class Recipient: EmbeddedObject, Codable { return email.hasSuffix(domain) } - guard let regex = Regex(pattern: "mailer-daemon@(?:.+.)?infomaniak.ch") else { return false } - let isMailerDeamon = !regex.firstMatch(in: email).isEmpty + let isMailerDeamon: Bool + if let regex = Self.mailerDeamonRegex { + isMailerDeamon = !regex.firstMatch(in: email).isEmpty + } else { + isMailerDeamon = false + } let isAnAlias = mailboxManager.mailbox.aliases.contains(email) diff --git a/MailCore/Utils/Model/DisplayExternalRecipientStatus.swift b/MailCore/Utils/Model/DisplayExternalRecipientStatus.swift index 7921980806..3ec9b836c3 100644 --- a/MailCore/Utils/Model/DisplayExternalRecipientStatus.swift +++ b/MailCore/Utils/Model/DisplayExternalRecipientStatus.swift @@ -29,11 +29,6 @@ public struct DisplayExternalRecipientStatus { let mailboxManager: MailboxManager let recipientsList: List - public init(mailboxManager: MailboxManager, recipientsList: List) { - self.mailboxManager = mailboxManager - self.recipientsList = recipientsList - } - public var state: State { var externalList = [Recipient]() let recipients = recipientsList