Skip to content
Snippets Groups Projects
Commit c79ff85e authored by goekhan08's avatar goekhan08
Browse files

Renamed the property for the folder name, added a modifier to the avatar

parent eba371f9
Branches
No related tags found
1 merge request!81Resolve "Add Pull to Refresh to MailListView" & Redesign ContactView
......@@ -37,7 +37,7 @@ struct ContactMailListView: View {
ForEach (0..<min(3,filteredEmails.count)) { record in
NavigationLink(
destination: ReadMainView(model: ReadModel(mail: filteredEmails[record]))) {
MailRowView(mail: filteredEmails[record])
MailRowView(mail: filteredEmails[record], activateOnTap: false)
}
if record < min(2, filteredEmails.count - 1) {
Divider()
......@@ -134,7 +134,7 @@ struct MoreContactMailView: View {
List (filteredEmails, id: \.self){ record in
NavigationLink(
destination: ReadMainView(model: ReadModel(mail: record))) {
MailRowView(mail: record)
MailRowView(mail: record, activateOnTap: false)
}
}
}
......
......@@ -21,7 +21,7 @@ struct FolderListView: View {
List(folders, id: \.self) { f in
let name = formatName(f.name)
NavigationLink(destination: InboxView(folderPath: f.path ?? name, name: name)
NavigationLink(destination: InboxView(folderPath: f.path ?? name, folderName: name)
.environment(\.managedObjectContext,
PersistentDataProvider
.dataProvider
......
......@@ -8,20 +8,18 @@
//
import SwiftUI
//import CoreData
struct InboxView: View {
var folderPath: String
var name: String
var folderName: String
@State private var updating = false
@State private var composeMail = false
@State private var goToFolders = false
@ObservedObject var refreshModel: InboxRefreshModel
init(folderPath: String, name: String) {
init(folderPath: String, folderName: String) {
self.folderPath = folderPath
self.name = name
self.folderName = folderName
self.refreshModel = InboxRefreshModel(folderPath: folderPath)
}
......@@ -45,7 +43,7 @@ struct InboxView: View {
}
private var mailListView: some View {
MailListView(folderPath: folderPath, folderName: name, refreshModel: refreshModel)
MailListView(folderPath: folderPath, folderName: folderName, refreshModel: refreshModel)
.environment(\.managedObjectContext,
PersistentDataProvider
.dataProvider
......@@ -88,7 +86,7 @@ struct InboxView: View {
// Preview
struct InboxView_Previews: PreviewProvider {
static var previews: some View {
return InboxView(folderPath: "INBOX", name: "INBOX")
return InboxView(folderPath: "INBOX", folderName: "INBOX")
.environment(\.managedObjectContext,
PersistentDataProvider
.proxyPersistentDataProvider
......
......@@ -11,6 +11,9 @@ import SwiftUI
struct MailRowView <M: DisplayMail>: View {
let mail: M
@State var isLinkActive = false
// ContactMailListView toggles this to disable the onTapGesture modifier for the avatar
var activateOnTap: Bool = true
var body: some View {
HStack {
......@@ -59,18 +62,14 @@ struct MailRowView <M: DisplayMail>: View {
.aspectRatio(contentMode: .fit)
.shadow(radius: 2)
.opacity(mail.isRead ? 0.45 : 1)
}
}
// A conditional view modifier
extension View {
@ViewBuilder
public func `if`<V>(_ condition: Bool, input: (Self) -> V) -> some View where V: View {
if condition {
input(self)
} else {
self
}
.onTapGesture(count: 1, perform: {isLinkActive = true})
.allowsHitTesting(activateOnTap)
.background(
NavigationLink(destination: ContactView(contact: mail.sender), isActive: $isLinkActive) {
EmptyView()
}
.hidden()
)
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment