Skip to content
Snippets Groups Projects
Commit 4f4acb49 authored by Oliver Wiese's avatar Oliver Wiese
Browse files

fix new mails bug: No update in inbox view

parent 2c777910
Branches
Tags
2 merge requests!58Onboarding screens swift ui merge dev,!55WIP: Resolve "UI for gamifcation & stats"
...@@ -23,7 +23,7 @@ import CoreData ...@@ -23,7 +23,7 @@ import CoreData
extension PersistentMail { extension PersistentMail {
@nonobjc open override class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult> { @nonobjc public class func fetchRequest() -> NSFetchRequest<PersistentMail> {
return NSFetchRequest(entityName: "PersistentMail"); return NSFetchRequest(entityName: "PersistentMail");
} }
......
...@@ -45,7 +45,7 @@ struct Inbox: View { ...@@ -45,7 +45,7 @@ struct Inbox: View {
private var mailList: some View { private var mailList: some View {
List (self.keyrecords.filter(filterKeyRecord), id: \.self){ List (self.keyrecords.filter(filterKeyRecord), id: \.self){
record in record in
KeyRecordRow(keyrecord: record, coord: self.coord) KeyRecordRow(keyrecord: record, coord: self.coord).environment(\.managedObjectContext, self.managedObjectContext)
} }
.resignKeyboardOnDragGesture() // hide keyboard when dragging .resignKeyboardOnDragGesture() // hide keyboard when dragging
} }
......
...@@ -40,7 +40,7 @@ class InboxCoordinator { ...@@ -40,7 +40,7 @@ class InboxCoordinator {
} }
else { else {
let context = DataHandler.handler.managedObjectContext let context = DataHandler.handler.managedObjectContext
let vc = UIHostingController(rootView: Inbox(coord: self).environment(\.managedObjectContext,context)) let vc = UIHostingController(rootView: Inbox(coord: self).environment(\.managedObjectContext, context))
inbox = vc inbox = vc
root.pushViewController(vc, animated: true) root.pushViewController(vc, animated: true)
} }
......
...@@ -9,9 +9,27 @@ ...@@ -9,9 +9,27 @@
import SwiftUI import SwiftUI
struct KeyRecordRow: View { struct KeyRecordRow: View {
@ObservedObject var keyrecord: KeyRecord @Environment(\.managedObjectContext) var managedObjectContext
var keyrecord: KeyRecord
let coord: InboxCoordinator let coord: InboxCoordinator
var fetchRequest: FetchRequest<PersistentMail>
var mails: FetchedResults<PersistentMail> {
fetchRequest.wrappedValue
}
init(keyrecord: KeyRecord, coord: InboxCoordinator) {
self.keyrecord = keyrecord
self.coord = coord
let pred = NSPredicate(format: "record == %@", keyrecord)
let folderPredicate = NSPredicate(format: "folder == %@", Folder.inbox)
let predicates = NSCompoundPredicate(andPredicateWithSubpredicates: [pred, folderPredicate])
let sortDescriptors = [NSSortDescriptor(key: "date", ascending: false)]
fetchRequest = FetchRequest<PersistentMail>(entity: PersistentMail.entity(), sortDescriptors: sortDescriptors, predicate: predicates, animation: nil)
}
var body: some View { var body: some View {
VStack { VStack {
HStack(alignment: .lastTextBaseline) { HStack(alignment: .lastTextBaseline) {
...@@ -28,6 +46,13 @@ struct KeyRecordRow: View { ...@@ -28,6 +46,13 @@ struct KeyRecordRow: View {
} }
} }
var secondMail: PersistentMail?{
if mails.count > 1 {
return mails[2]
}
return nil
}
/* /*
Displays the first (and second) mail Displays the first (and second) mail
*/ */
...@@ -35,11 +60,11 @@ struct KeyRecordRow: View { ...@@ -35,11 +60,11 @@ struct KeyRecordRow: View {
let spacing = CGFloat(10) let spacing = CGFloat(10)
let offset = -(spacing / 2) let offset = -(spacing / 2)
if let first = self.keyrecord.firstMail { if let first = mails.first {
if let second = self.keyrecord.secondMail { if mails.count > 1 {
return AnyView(VStack(alignment: .leading, spacing: spacing) { return AnyView(VStack(alignment: .leading, spacing: spacing) {
MailView(mail: first, coord: coord) MailView(mail: first, coord: coord)
MailView(mail: second, coord: coord) MailView(mail: mails[1], coord: coord)
.background(Stroke(offsetY: offset)) .background(Stroke(offsetY: offset))
}) })
} else { } else {
...@@ -85,6 +110,7 @@ struct KeyRecordRow: View { ...@@ -85,6 +110,7 @@ struct KeyRecordRow: View {
extension KeyRecord { extension KeyRecord {
public var firstMail: PersistentMail? { public var firstMail: PersistentMail? {
get { get {
return mails.first return mails.first
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment