Merge claude/strange-mirzakhani-179c4e (design-alignment rewrite)
# Conflicts: # swift/Assets.xcassets/LaneFeed.colorset/Contents.json # swift/Assets.xcassets/LanePaper.colorset/Contents.json # swift/Assets.xcassets/LanePeople.colorset/Contents.json # swift/Assets.xcassets/SIOTint.colorset/Contents.json # swift/SocialIO.xcodeproj/project.pbxproj # swift/Sources/App/SocialIOApp.swift # swift/Sources/Core/Models/MailModels.swift # swift/Sources/Core/Services/MockMailService.swift # swift/Sources/Features/Mail/MailRootView.swift
This commit is contained in:
@@ -5,6 +5,7 @@ import Observation
|
||||
@Observable
|
||||
final class AppViewModel {
|
||||
var selectedMailbox: Mailbox = .inbox
|
||||
var selectedLane: Lane?
|
||||
var selectedThreadID: MailThread.ID?
|
||||
var focusedMessageRouteID: String?
|
||||
var searchText = ""
|
||||
@@ -50,6 +51,10 @@ final class AppViewModel {
|
||||
.filter { thread in
|
||||
laneFilter == nil || thread.lane == laneFilter
|
||||
}
|
||||
.filter { thread in
|
||||
guard let lane = selectedLane else { return true }
|
||||
return thread.lane == lane
|
||||
}
|
||||
.filter { thread in
|
||||
!showUnreadOnly || thread.isUnread
|
||||
}
|
||||
@@ -57,6 +62,27 @@ final class AppViewModel {
|
||||
.sorted { $0.lastUpdated > $1.lastUpdated }
|
||||
}
|
||||
|
||||
func laneUnreadCount(_ lane: Lane) -> Int {
|
||||
threads.filter { thread in
|
||||
let inCurrentMailbox = selectedMailbox == .starred
|
||||
? thread.isStarred
|
||||
: thread.mailbox == selectedMailbox
|
||||
return inCurrentMailbox && thread.lane == lane && thread.isUnread
|
||||
}.count
|
||||
}
|
||||
|
||||
func laneThreadCount(_ lane: Lane) -> Int {
|
||||
threads.filter { thread in
|
||||
thread.mailbox == .inbox && thread.lane == lane
|
||||
}.count
|
||||
}
|
||||
|
||||
func selectLane(_ lane: Lane?) {
|
||||
selectedLane = lane
|
||||
clearThreadSelection()
|
||||
mailboxNavigationToken = UUID()
|
||||
}
|
||||
|
||||
var totalUnreadCount: Int {
|
||||
threads.filter(\.isUnread).count
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user