Code owners
Assign users and groups as approvers for specific file changes. Learn more.
KeyRecordRow.swift.orig 4.09 KiB
//
// KeyRecordRow.swift
// enzevalos_iphone
//
// Created by Oliver Wiese on 02.03.20.
// Copyright © 2020 fu-berlin. All rights reserved.
//
import SwiftUI
struct KeyRecordRow: View {
<<<<<<< HEAD
@ObservedObject var keyrecord: KeyRecord
let coord: InboxCoordinator
=======
@Environment(\.managedObjectContext) var managedObjectContext
var keyrecord: KeyRecord
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)
}
>>>>>>> dev
var body: some View {
VStack {
HStack(alignment: .lastTextBaseline) {
icon
Spacer()
mailListView()
.offset(y: -10)
}
HStack {
name
Spacer()
moreMails
}
}
}
<<<<<<< HEAD
=======
var secondMail: PersistentMail?{
if mails.count > 1 {
return mails[2]
}
return nil
}
>>>>>>> dev
/*
Displays the first (and second) mail
*/
private func mailListView() -> AnyView {
let spacing = CGFloat(10)
let offset = -(spacing / 2)
<<<<<<< HEAD
if let first = self.keyrecord.firstMail {
if let second = self.keyrecord.secondMail {
return AnyView(VStack(alignment: .leading, spacing: spacing) {
MailView(mail: first, coord: coord)
MailView(mail: second, coord: coord)
=======
if let first = mails.first {
if mails.count > 1 {
return AnyView(VStack(alignment: .leading, spacing: spacing) {
MailView(mail: first, coord: coord)
MailView(mail: mails[1], coord: coord)
>>>>>>> dev
.background(Stroke(offsetY: offset))
})
} else {
return AnyView(VStack(alignment: .leading,spacing: spacing) {
MailView(mail: first, coord: coord)
Text(NSLocalizedString("NoFurtherMessages", comment: "No more Mails"))
.background(Stroke(offsetY: offset))
})
}
} else {
return AnyView(Text("NO MAILS..."))
}
}
private var icon: some View{
self.keyrecord.image.img
.resizable()
.frame(width: 60, height: 60)
.shadow(radius: 5)
.onTapGesture {
self.coord.pushRecordView(record: self.keyrecord)
}
}
private var name: some View {
Text(self.keyrecord.myNick)
.frame(maxWidth: 300, alignment: .leading)
.lineLimit(1)
.onTapGesture {
self.coord.pushRecordView(record: self.keyrecord)
}
}
private var moreMails: some View {
Button(action: {
self.coord.pushMailListView(record: self.keyrecord)
}, label: {
Text(NSLocalizedString("MailView.MoreMails", comment: "More mails"))
.foregroundColor(.gray)
})
}
}
extension KeyRecord {
<<<<<<< HEAD
=======
>>>>>>> dev
public var firstMail: PersistentMail? {
get {
return mails.first
}
}
public var secondMail: PersistentMail? {
get {
if mails.count > 1 {
return mails[1]
}
return nil
}
}
}