Order the project picker by most recently selected
This commit is contained in:
@@ -511,6 +511,10 @@ final class Store {
|
||||
}
|
||||
|
||||
func applyFocus(_ f: Focus) {
|
||||
if f.projectId != focus.projectId {
|
||||
markVisited(focus.projectId)
|
||||
markVisited(f.projectId)
|
||||
}
|
||||
focus = f
|
||||
if f.taskId != selectedTaskId {
|
||||
selectTask(f.taskId)
|
||||
@@ -662,14 +666,14 @@ final class Store {
|
||||
}
|
||||
}
|
||||
|
||||
private func markVisited(_ taskId: String?) {
|
||||
guard let taskId else {
|
||||
private func markVisited(_ id: String?) {
|
||||
guard let id else {
|
||||
return
|
||||
}
|
||||
let at = Date().timeIntervalSince1970 * 1000
|
||||
let records = fetchRecords(FetchDescriptor<VisitRecord>(predicate: #Predicate { $0.taskId == taskId }))
|
||||
let records = fetchRecords(FetchDescriptor<VisitRecord>(predicate: #Predicate { $0.taskId == id }))
|
||||
if records.isEmpty {
|
||||
persistence.insert(VisitRecord(taskId: taskId, at: at))
|
||||
persistence.insert(VisitRecord(taskId: id, at: at))
|
||||
} else {
|
||||
records[0].at = at
|
||||
for record in records.dropFirst() {
|
||||
|
||||
Reference in New Issue
Block a user