From 269a6e08b1f72dc9f42ab4448208d9f8fa2dba31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Dr=2E=20med=2E=20K=C3=BCbler?= Date: Mon, 9 Nov 2026 19:51:11 +0100 Subject: [PATCH] Alpha 6 --- .../UserInterfaceState.xcuserstate | Bin 145770 -> 154449 bytes MikeMail/AccountColor.swift | 37 ++++ MikeMail/AccountsView.swift | 86 ++++++-- MikeMail/ContentView.swift | 184 +++++++++++++++--- MikeMail/Localizable.xcstrings | 23 +++ MikeMail/MailModels.swift | 5 + MikeMail/MailPrinter.swift | 81 +++++--- MikeMail/MailStore.swift | 34 +++- MikeMailTests/MailWorkflowTests.swift | 10 +- 9 files changed, 387 insertions(+), 73 deletions(-) create mode 100644 MikeMail/AccountColor.swift diff --git a/MikeMail.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate b/MikeMail.xcodeproj/project.xcworkspace/xcuserdata/michael.xcuserdatad/UserInterfaceState.xcuserstate index 6038d755f036e2b46766dd6cce26c216a333aac4..2a0987aac4074bf7891104b88718a0caf04d2253 100644 GIT binary patch literal 154449 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ȭ@ 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

_es_ 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 diff --git a/MikeMail/AccountColor.swift b/MikeMail/AccountColor.swift new file mode 100644 index 0000000..c4093b8 --- /dev/null +++ b/MikeMail/AccountColor.swift @@ -0,0 +1,37 @@ +import SwiftUI +import AppKit + +struct AccountIndicator: Equatable { + let name: String + let colorHex: String? +} + +extension Color { + private static let defaultAccountHex = "#3B82F6" + + init(accountHex: String?) { + let value = accountHex ?? Self.defaultAccountHex + let hex = value.trimmingCharacters(in: CharacterSet(charactersIn: "#")) + guard hex.count == 6, let number = UInt64(hex, radix: 16) else { + self = Color(nsColor: .systemBlue) + return + } + self.init( + .sRGB, + red: Double((number >> 16) & 0xFF) / 255, + green: Double((number >> 8) & 0xFF) / 255, + blue: Double(number & 0xFF) / 255, + opacity: 1 + ) + } + + var accountHex: String { + guard let color = NSColor(self).usingColorSpace(.sRGB) else { + return Self.defaultAccountHex + } + let red = Int((color.redComponent * 255).rounded()) + let green = Int((color.greenComponent * 255).rounded()) + let blue = Int((color.blueComponent * 255).rounded()) + return String(format: "#%02X%02X%02X", red, green, blue) + } +} diff --git a/MikeMail/AccountsView.swift b/MikeMail/AccountsView.swift index 57f21c8..31d8389 100644 --- a/MikeMail/AccountsView.swift +++ b/MikeMail/AccountsView.swift @@ -76,7 +76,9 @@ struct AccountsView: View { .keyboardShortcut(.defaultAction) } } - .padding(24).frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) + .padding(.horizontal, 24) + .padding(.vertical, 36) + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading) } Divider() HStack { @@ -94,9 +96,11 @@ struct AccountsView: View { .disabled(selection == nil || store.isBusy) Spacer() Button("Schließen") { dismiss() }.keyboardShortcut(.cancelAction) - }.padding(16) + } + .padding(.horizontal, 16) + .padding(.vertical, 22) } - .frame(width: 850, height: 520) + .frame(width: 850, height: 600) .interactiveDismissDisabled(testing) .disabled(testing) .alert("Testmail senden?", isPresented: $askingTestMail) { @@ -209,23 +213,73 @@ struct AccountSettingsForm: View { @State private var showsPassword = false var body: some View { - Form { - TextField("Name", text: $account.name) - TextField("Anzeigename", text: Binding( - get: { account.displayName ?? "" }, - set: { account.displayName = $0 } - )) - TextField("E-Mail-Adresse", text: $account.email).accessibilityIdentifier("accountEmail") - TextField("Benutzername", text: $account.username) - TextField("Server", text: $account.host) - TextField("IMAP-Port (TLS)", value: $account.imapPort, format: .number.grouping(.never)) - TextField("SMTP-Port (587 STARTTLS / 465 TLS)", value: $account.smtpPort, format: .number.grouping(.never)) - LabeledContent("Passwort") { + Grid(alignment: .leading, horizontalSpacing: 16, verticalSpacing: 12) { + GridRow(alignment: .center) { + Text("Name").gridColumnAlignment(.trailing) + TextField("Name", text: $account.name) + .labelsHidden() + .frame(maxWidth: .infinity) + .gridColumnAlignment(.leading) + } + GridRow(alignment: .center) { + Text("Anzeigename") + TextField("Anzeigename", text: Binding( + get: { account.displayName ?? "" }, + set: { account.displayName = $0 } + )) + .labelsHidden() + .frame(maxWidth: .infinity) + } + GridRow(alignment: .center) { + Text("Kontofarbe") + ColorPicker("Kontofarbe", selection: Binding( + get: { Color(accountHex: account.colorHex) }, + set: { account.colorHex = $0.accountHex } + ), supportsOpacity: false) + .labelsHidden() + .fixedSize() + } + GridRow(alignment: .center) { + Text("E-Mail-Adresse") + TextField("E-Mail-Adresse", text: $account.email) + .labelsHidden() + .frame(maxWidth: .infinity) + .accessibilityIdentifier("accountEmail") + } + GridRow(alignment: .center) { + Text("Benutzername") + TextField("Benutzername", text: $account.username) + .labelsHidden() + .frame(maxWidth: .infinity) + } + GridRow(alignment: .center) { + Text("Server") + TextField("Server", text: $account.host) + .labelsHidden() + .frame(maxWidth: .infinity) + } + GridRow(alignment: .center) { + Text("IMAP-Port (TLS)") + TextField("IMAP-Port (TLS)", value: $account.imapPort, format: .number.grouping(.never)) + .labelsHidden() + .frame(maxWidth: .infinity) + } + GridRow(alignment: .center) { + Text("SMTP-Port (587 STARTTLS / 465 TLS)") + TextField("SMTP-Port (587 STARTTLS / 465 TLS)", value: $account.smtpPort, + format: .number.grouping(.never)) + .labelsHidden() + .frame(maxWidth: .infinity) + } + GridRow(alignment: .center) { + Text("Passwort") HStack(spacing: 8) { if showsPassword { TextField("Passwort", text: $password) + .labelsHidden() } else { SecureField("Passwort", text: $password) + .labelsHidden() } Button(showsPassword ? "Passwort verbergen" : "Passwort anzeigen", systemImage: showsPassword ? "eye.slash" : "eye") { @@ -234,7 +288,9 @@ struct AccountSettingsForm: View { .labelStyle(.iconOnly) .buttonStyle(.borderless) } + .frame(maxWidth: .infinity) } } + .frame(maxWidth: .infinity, alignment: .leading) } } diff --git a/MikeMail/ContentView.swift b/MikeMail/ContentView.swift index 438af2d..c647f23 100644 --- a/MikeMail/ContentView.swift +++ b/MikeMail/ContentView.swift @@ -33,12 +33,12 @@ struct ContentView: View { @AppStorage("sidebarVisible") private var sidebarVisible = true @State private var columnVisibility: NavigationSplitViewVisibility = .all @AppStorage("mailSearch") private var search = "" - @AppStorage("searchSubject") private var searchSubject = true - @AppStorage("searchSender") private var searchSender = true - @AppStorage("searchBody") private var searchBody = false + @AppStorage("searchCaseSensitive") private var searchCaseSensitive = false @AppStorage("searchRegex") private var searchRegex = false + @AppStorage("mailSearchScope") private var searchScope = MailSearchScope.currentFolder @State private var selectedFolder: String? @State private var selectedMessages: Set = [] + @State private var searchCandidates: [MailMessage] = [] @State private var accountPresentation = AccountPresentation() @Environment(\.openWindow) private var openWindow @AppStorage("mailDeleteConfirmation") private var deleteConfirmation: MailDeleteConfirmation = .always @@ -62,7 +62,28 @@ struct ContentView: View { } private var searchFilter: MailSearch { - MailSearch(text: search, subject: searchSubject, sender: searchSender, body: searchBody, regularExpression: searchRegex) + MailSearch(text: search, caseSensitive: searchCaseSensitive, regularExpression: searchRegex) + } + + private var displayedMessages: [MailMessage] { + guard !search.isEmpty else { return store.messages } + return searchCandidates.filter(searchFilter.matches) + } + + private var accountIndicators: [UUID: AccountIndicator] { + Dictionary(uniqueKeysWithValues: store.accounts.map { account in + (account.id, AccountIndicator( + name: account.name.isEmpty ? account.email : account.name, + colorHex: account.colorHex + )) + }) + } + + private var currentSearchAccountID: UUID? { + guard let selectedFolder else { return nil } + if let folder = store.folder(id: selectedFolder) { return folder.accountID } + guard selectedFolder.hasPrefix("account:") else { return nil } + return UUID(uuidString: String(selectedFolder.dropFirst("account:".count))) } var body: some View { @@ -72,14 +93,12 @@ struct ContentView: View { } detail: { VStack(spacing: 0) { if !search.isEmpty { - HStack { - Text("Suchen in:") - Toggle("Betreff", isOn: $searchSubject) - Toggle("Absender", isOn: $searchSender) - Toggle("Inhalt", isOn: $searchBody) - Spacer() - Toggle("Regulärer Ausdruck", isOn: $searchRegex) - }.toggleStyle(.checkbox).padding(10) + SearchOptionsBar( + scope: $searchScope, + caseSensitive: $searchCaseSensitive, + regularExpression: $searchRegex, + currentAccountAvailable: currentSearchAccountID != nil + ) if let error = searchFilter.error { Text(error).foregroundStyle(.red).font(.caption).padding(.horizontal) } @@ -93,12 +112,18 @@ struct ContentView: View { .frame(height: 26) .padding(8) VSplitView { - MessageTable(messages: store.messages.filter(searchFilter.matches), selection: $selectedMessages, busy: store.isBusy, action: perform) + MessageTable( + messages: displayedMessages, + selection: $selectedMessages, + busy: store.isBusy, + accountIndicators: accountIndicators, + action: perform + ) .onDeleteCommand { deleteSelection() } .frame(minHeight: 160, idealHeight: 300) .background(WindowPersistence()) - MessageReader(message: store.messages.first { selectedMessages.contains($0.id) }) + MessageReader(message: displayedMessages.first { selectedMessages.contains($0.id) }) .frame(minHeight: 220, maxHeight: .infinity) } } @@ -111,7 +136,7 @@ struct ContentView: View { .accessibilityLabel("Sofortempfang") Text(store.status).font(.caption).foregroundStyle(.secondary) Spacer() - Text("\(store.messages.count) Nachrichten").font(.caption).foregroundStyle(.secondary) + Text("\(displayedMessages.count) Nachrichten").font(.caption).foregroundStyle(.secondary) }.padding(8).background(.bar) } } @@ -136,6 +161,14 @@ struct ContentView: View { .disabled(store.isBusy) Button("Neue Nachricht", systemImage: "square.and.pencil") { openComposer(ComposeDraft(accountID: composeAccountID)) } .keyboardShortcut("n", modifiers: .command).disabled(store.accounts.isEmpty) + Button("Drucken …", systemImage: "printer") { + guard selectedMessages.count == 1, + let id = selectedMessages.first, + let message = store.message(id: id) else { return } + MailPrinter.print(message) + } + .keyboardShortcut("p", modifiers: .command) + .disabled(selectedMessages.count != 1) Button("Löschen", systemImage: "trash") { deleteSelection() } .disabled(selectedMessages.isEmpty) } @@ -181,8 +214,17 @@ struct ContentView: View { .onChange(of: selectedFolder) { _, folder in savedFolder = folder ?? "" selectedMessages = [] - Task { await store.load(folderID: folder) } + if searchScope == .currentAccount && currentSearchAccountID == nil { + searchScope = .currentFolder + } + Task { + await store.load(folderID: folder) + updateSearchCandidates() + } } + .onChange(of: search) { _, _ in updateSearchCandidates() } + .onChange(of: searchScope) { _, _ in updateSearchCandidates() } + .onChange(of: store.archiveRevision) { _, _ in updateSearchCandidates() } .onChange(of: selectedMessages) { _, ids in savedMessage = ids.sorted().first ?? "" savedMessages = (try? JSONEncoder().encode(ids)) ?? Data() @@ -196,6 +238,7 @@ struct ContentView: View { columnVisibility = sidebarVisible ? .all : .detailOnly selectedFolder = savedFolder.isEmpty ? nil : savedFolder await store.start(folderID: selectedFolder) + updateSearchCandidates() selectedMessages = selection.intersection(Set(store.messages.map(\.id))) } .frame(minWidth: 850, minHeight: 550) @@ -205,6 +248,18 @@ struct ContentView: View { openWindow(id: "compose", value: store.prepareCompose(draft)) } + private func updateSearchCandidates() { + guard !search.isEmpty else { + searchCandidates = [] + return + } + searchCandidates = store.messagesForSearch( + scope: searchScope, + folderID: selectedFolder, + accountID: currentSearchAccountID + ) + } + private func perform(_ command: MessageCommand, _ ids: Set) { guard !ids.isEmpty else { return } switch command { @@ -241,21 +296,81 @@ struct ContentView: View { } } +enum MailSearchScope: String { + case currentFolder + case currentAccount + case allAccounts +} + +struct SearchOptionsBar: View { + @Binding var scope: MailSearchScope + @Binding var caseSensitive: Bool + @Binding var regularExpression: Bool + let currentAccountAvailable: Bool + + var body: some View { + HStack(spacing: 16) { + Menu { + scopeButton("Aktueller Ordner", value: .currentFolder) + scopeButton("Aktuelles Konto", value: .currentAccount) + .disabled(!currentAccountAvailable) + scopeButton("Alle Konten", value: .allAccounts) + } label: { + Label(scopeTitle, systemImage: "magnifyingglass") + } + Toggle("Groß-/Kleinschreibung beachten", isOn: $caseSensitive) + .disabled(regularExpression) + .help(regularExpression + ? "Bei regulären Ausdrücken wird die Schreibweise durch den Ausdruck selbst gesteuert, zum Beispiel mit (?i)." + : "Unterscheidet bei der Textsuche zwischen Groß- und Kleinschreibung.") + Spacer() + Toggle("Regulärer Ausdruck", isOn: Binding( + get: { regularExpression }, + set: { enabled in + regularExpression = enabled + if enabled { caseSensitive = false } + } + )) + } + .toggleStyle(.checkbox) + .padding(10) + } + + private func scopeButton(_ title: LocalizedStringKey, value: MailSearchScope) -> some View { + Button { + scope = value + } label: { + if scope == value { + Label(title, systemImage: "checkmark") + } else { + Text(title) + } + } + } + + private var scopeTitle: LocalizedStringKey { + switch scope { + case .currentFolder: "Aktueller Ordner" + case .currentAccount: "Aktuelles Konto" + case .allAccounts: "Alle Konten" + } + } +} + struct MailSearch { let text: String - let subject: Bool - let sender: Bool - let body: Bool + let caseSensitive: Bool let regularExpression: Bool private let expression: NSRegularExpression? let error: String? - init(text: String, subject: Bool, sender: Bool, body: Bool, regularExpression: Bool) { - self.text = text; self.subject = subject; self.sender = sender - self.body = body; self.regularExpression = regularExpression + init(text: String, caseSensitive: Bool, regularExpression: Bool) { + self.text = text + self.caseSensitive = caseSensitive + self.regularExpression = regularExpression if regularExpression && !text.isEmpty { do { - expression = try NSRegularExpression(pattern: text, options: [.caseInsensitive]) + expression = try NSRegularExpression(pattern: text) error = nil } catch { expression = nil @@ -265,12 +380,14 @@ struct MailSearch { } func matches(_ message: MailMessage) -> Bool { guard !text.isEmpty else { return true } - let fields = [(subject, message.subject), (sender, message.sender), (body, message.body)] - .filter(\.0).map(\.1) + let fields = [message.sender, message.subject, message.body] if regularExpression { guard let expression else { return false } return fields.contains { expression.firstMatch(in: $0, range: NSRange($0.startIndex..., in: $0)) != nil } } + if caseSensitive { + return fields.contains { $0.range(of: text) != nil } + } return fields.contains { $0.localizedCaseInsensitiveContains(text) } } } @@ -332,6 +449,7 @@ struct MessageTable: View { let messages: [MailMessage] @Binding var selection: Set var busy = false + var accountIndicators: [UUID: AccountIndicator] = [:] var action: (MessageCommand, Set) -> Void = { _, _ in } @AppStorage("mailSortColumn") private var savedColumn = "date" @AppStorage("mailSortAscending") private var savedAscending = false @@ -342,6 +460,19 @@ struct MessageTable: View { var body: some View { Table(of: MailMessage.self, selection: $selection, sortOrder: $sortOrder, columnCustomization: $columnCustomization) { + TableColumn("") { message in + if let accountID = message.accountID, + let indicator = accountIndicators[accountID] { + RoundedRectangle(cornerRadius: 3) + .fill(Color(accountHex: indicator.colorHex)) + .frame(width: 12, height: 12) + .frame(maxWidth: .infinity, alignment: .center) + .accessibilityLabel("Konto: \(indicator.name)") + .help(indicator.name) + } + } + .width(28) + .customizationID("account") TableColumn("Absender", value: \.displaySender) { message in Text(message.displaySender).fontWeight(message.isRead ? .regular : .bold) } @@ -372,6 +503,9 @@ struct MessageTable: View { TableRow(message).draggable(MailDrag.encode(selection.contains(message.id) ? selection : [message.id])) } } + .transaction { transaction in + transaction.animation = nil + } .contextMenu(forSelectionType: String.self) { ids in if ids.count == 1 { Button("In neuem Fenster öffnen") { action(.open, ids) } diff --git a/MikeMail/Localizable.xcstrings b/MikeMail/Localizable.xcstrings index 1a2063b..10a3b69 100644 --- a/MikeMail/Localizable.xcstrings +++ b/MikeMail/Localizable.xcstrings @@ -225,6 +225,12 @@ } } } + }, + "Aktueller Ordner" : { + + }, + "Aktuelles Konto" : { + }, "Alle %lld Minuten" : { "extractionState" : "stale", @@ -459,6 +465,9 @@ }, "Bei neuen Mails benachrichtigen" : { + }, + "Bei regulären Ausdrücken wird die Schreibweise durch den Ausdruck selbst gesteuert, zum Beispiel mit (?i)." : { + }, "Beim Deaktivieren der HTML-Nachricht gehen alle Textformatierungen verloren." : { @@ -839,6 +848,9 @@ } } } + }, + "Groß-/Kleinschreibung beachten" : { + }, "HTML-Formatierung entfernen?" : { @@ -884,6 +896,7 @@ } }, "Inhalt" : { + "extractionState" : "stale", "localizations" : { "de" : { "stringUnit" : { @@ -973,6 +986,9 @@ } } } + }, + "Konto: %@" : { + }, "Konto: %@\n\nAlle lokal gespeicherten Mails und Anhänge dieses Kontos werden entfernt, auch archivierte Nachrichten und lokale Versandkopien. Nur lokal vorhandene Mails können nicht vom Server wiederhergestellt werden.\n\nMails auf dem Server, Kontoeinstellungen und Passwort bleiben unverändert. Beim nächsten „Abrufen“ werden alle vorhandenen Servermails neu heruntergeladen." : { "localizations" : { @@ -983,6 +999,9 @@ } } } + }, + "Kontofarbe" : { + }, "Kursiv" : { "localizations" : { @@ -1582,6 +1601,7 @@ } }, "Suchen in:" : { + "extractionState" : "stale", "localizations" : { "de" : { "stringUnit" : { @@ -1626,6 +1646,9 @@ }, "Unbekannter Absender" : { + }, + "Unterscheidet bei der Textsuche zwischen Groß- und Kleinschreibung." : { + }, "Unterstrichen" : { "localizations" : { diff --git a/MikeMail/MailModels.swift b/MikeMail/MailModels.swift index 9d19a05..17e7ee2 100644 --- a/MikeMail/MailModels.swift +++ b/MikeMail/MailModels.swift @@ -5,6 +5,7 @@ struct MailAccount: Identifiable, Codable, Hashable, Sendable { var id = UUID() var name = "" var displayName: String? + var colorHex: String? var email = "" var username = "" var host = "" @@ -95,6 +96,10 @@ struct MailMessage: Identifiable, Sendable { var htmlBody: String? = nil var displaySender: String { MailDisplay.sender(sender) } var attachmentCount: Int { attachments.count } + var accountID: UUID? { + guard let separator = id.firstIndex(of: ":") else { return nil } + return UUID(uuidString: String(id[.. NSAttributedString? { + private static func makeAttributedMessage(_ message: MailMessage, width: CGFloat) -> NSAttributedString? { let body: String if let htmlBody = message.htmlBody, !htmlBody.isEmpty { body = htmlBody @@ -57,31 +52,67 @@ enum MailPrinter { let ccRow = message.cc.isEmpty ? "" - : "CC:\(escaped(message.cc))" - let html = """ + : "CC:\(escaped(message.cc))" + let headerHTML = """ - - - - - + +
Betreff:\(escaped(message.subject))
Von:\(escaped(message.sender))
An:\(escaped(message.recipient))
+ + + \(ccRow) - +
Betreff:\(escaped(message.subject))
Von:\(escaped(message.sender))
An:\(escaped(message.recipient))
Datum:\(escaped(message.date.formatted(date: .long, time: .shortened)))
Datum:\(escaped(message.date.formatted(date: .long, time: .shortened)))
-


-
\(body)
""" + let bodyHTML = """ + + + \(body) + """ - return try? NSAttributedString( - data: Data(html.utf8), + guard let header = try? NSAttributedString( + data: Data(headerHTML.utf8), options: [ .documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue ], documentAttributes: nil + ), let messageBody = try? NSAttributedString( + data: Data(bodyHTML.utf8), + options: [ + .documentType: NSAttributedString.DocumentType.html, + .characterEncoding: String.Encoding.utf8.rawValue + ], + documentAttributes: nil + ) else { return nil } + + let result = NSMutableAttributedString(attributedString: header) + let separatorImage = NSImage( + size: NSSize(width: max(width - 16, 1), height: 0.5), + flipped: false + ) { rect in + NSColor(calibratedWhite: 0.65, alpha: 1).setFill() + rect.fill() + return true + } + let attachment = NSTextAttachment() + attachment.image = separatorImage + let separator = NSMutableAttributedString(attachment: attachment) + separator.append(NSAttributedString(string: "\n")) + let separatorStyle = NSMutableParagraphStyle() + separatorStyle.paragraphSpacingBefore = 10 + separatorStyle.paragraphSpacing = 18 + separator.addAttribute( + .paragraphStyle, + value: separatorStyle, + range: NSRange(location: 0, length: separator.length) ) + result.append(NSAttributedString(string: "\n")) + result.append(separator) + result.append(messageBody) + return result } private static func escaped(_ text: String) -> String { diff --git a/MikeMail/MailStore.swift b/MikeMail/MailStore.swift index 654c96d..aee66a4 100644 --- a/MikeMail/MailStore.swift +++ b/MikeMail/MailStore.swift @@ -221,10 +221,10 @@ final class MailStore { ) } catch { failures.append(error.localizedDescription) } if failures.isEmpty { - status = "Abgleich abgeschlossen. Alle abgerufenen Mails sind offline verfügbar." + status = "Abgleich abgeschlossen. Bereit." } else { if authenticationAccountID == nil { error = failures.joined(separator: "\n") } - status = "Abgleich unvollständig. Bereits gespeicherte Mails bleiben offline verfügbar." + status = "Abgleich unvollständig." } } @@ -244,7 +244,7 @@ final class MailStore { guard let folderID else { messages = []; totalMessages = 0; return } do { try display(folderID: folderID) - if !isBusy { status = "\(messages.count) lokal gespeicherte Nachrichten · Abrufen gleicht Änderungen ab." } + if !isBusy { status = "Bereit." } } catch { self.error = error.localizedDescription } } @@ -377,6 +377,34 @@ final class MailStore { accounts.flatMap { allFolders(folders[$0.id] ?? []) }.first { $0.id == id } } + func messagesForSearch( + scope: MailSearchScope, + folderID: String?, + accountID: UUID? + ) -> [MailMessage] { + do { + switch scope { + case .currentFolder: + return messages + case .currentAccount: + guard let accountID else { return messages } + return try allFolders(folders[accountID] ?? []) + .filter(\.selectable) + .flatMap { try storage().messages(folderID: $0.id) } + .sorted { $0.date > $1.date } + case .allAccounts: + return try accounts + .flatMap { allFolders(folders[$0.id] ?? []) } + .filter(\.selectable) + .flatMap { try storage().messages(folderID: $0.id) } + .sorted { $0.date > $1.date } + } + } catch { + self.error = "Der Suchbereich konnte nicht geladen werden: \(error.localizedDescription)" + return folderID == nil ? [] : messages + } + } + private func client(for id: UUID) async throws -> IMAPClient { guard let account = accounts.first(where: { $0.id == id }) else { throw MailError.message("Konto nicht gefunden.") } let client = try IMAPClient(account: account) diff --git a/MikeMailTests/MailWorkflowTests.swift b/MikeMailTests/MailWorkflowTests.swift index 34f4177..443e40e 100644 --- a/MikeMailTests/MailWorkflowTests.swift +++ b/MikeMailTests/MailWorkflowTests.swift @@ -7,11 +7,11 @@ struct MailWorkflowTests { @Test func searchScopesAndExpressions() { let mail = MailMessage(id: "1", sender: "anna@example.com", recipient: "", subject: "Rechnung 2026", date: Date(), body: "Betrag: 123,45 EUR", attachments: []) - #expect(MailSearch(text: "123,45", subject: false, sender: false, body: true, regularExpression: false).matches(mail)) - #expect(!MailSearch(text: "123,45", subject: true, sender: true, body: false, regularExpression: false).matches(mail)) - #expect(MailSearch(text: #"Rechnung \d{4}$"#, subject: true, sender: false, body: false, regularExpression: true).matches(mail)) - #expect(MailSearch(text: "^ANNA@", subject: false, sender: true, body: false, regularExpression: true).matches(mail)) - let invalid = MailSearch(text: "[", subject: true, sender: true, body: true, regularExpression: true) + #expect(MailSearch(text: "123,45", caseSensitive: false, regularExpression: false).matches(mail)) + #expect(MailSearch(text: #"Rechnung \d{4}$"#, caseSensitive: false, regularExpression: true).matches(mail)) + #expect(!MailSearch(text: "^ANNA@", caseSensitive: false, regularExpression: true).matches(mail)) + #expect(MailSearch(text: "(?i)^ANNA@", caseSensitive: false, regularExpression: true).matches(mail)) + let invalid = MailSearch(text: "[", caseSensitive: false, regularExpression: true) #expect(invalid.error != nil) #expect(!invalid.matches(mail)) }