From c79ff85e07a3e78448a5002ed224aa9e2dd4ff12 Mon Sep 17 00:00:00 2001
From: Goekhan08 <goekhan08@mi.fu-berlin.de>
Date: Mon, 29 Mar 2021 20:57:56 +0200
Subject: [PATCH] Renamed the property for the folder name, added a modifier to
 the avatar

---
 .../SwiftUI/Contact/ContactMailListView.swift |  4 ++--
 .../SwiftUI/FolderView/FolderListView.swift   |  2 +-
 .../SwiftUI/Inbox/InboxView.swift             | 12 ++++------
 .../SwiftUI/Inbox/MailRowView.swift           | 23 +++++++++----------
 4 files changed, 19 insertions(+), 22 deletions(-)

diff --git a/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift b/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift
index 8244467c..e2f267ef 100644
--- a/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift
+++ b/enzevalos_iphone/SwiftUI/Contact/ContactMailListView.swift
@@ -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)
                 }
             }
     }
diff --git a/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift b/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
index 92faa9da..db92989d 100644
--- a/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
+++ b/enzevalos_iphone/SwiftUI/FolderView/FolderListView.swift
@@ -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
diff --git a/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift b/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
index 528c13fb..e9bde040 100644
--- a/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
+++ b/enzevalos_iphone/SwiftUI/Inbox/InboxView.swift
@@ -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
diff --git a/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift b/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
index 773c2c81..a73cb159 100644
--- a/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
+++ b/enzevalos_iphone/SwiftUI/Inbox/MailRowView.swift
@@ -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()
+            )
     }
 }
 
-- 
GitLab