From 7a004c2a5e0719488cd9073d6b64e1a2ce037f65 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Fri, 30 Sep 2022 01:55:41 +0200
Subject: [PATCH] Improve UI in ContactView

---
 .../Sources/ContactFeature/ContactView.swift     | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift b/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
index d775df01..a9611140 100644
--- a/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
+++ b/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
@@ -26,6 +26,10 @@ public struct ContactView: View {
     var importUsername: Bool
     var importEmail: Bool
     var importPhone: Bool
+    var canSendRequest: Bool
+    var canVerifyContact: Bool
+    var canConfirmRequest: Bool
+    var canCheckAuthorization: Bool
 
     init(state: ContactState) {
       dbContact = state.dbContact
@@ -36,6 +40,10 @@ public struct ContactView: View {
       importUsername = state.importUsername
       importEmail = state.importEmail
       importPhone = state.importPhone
+      canSendRequest = state.xxContact != nil || state.dbContact?.marshaled != nil
+      canVerifyContact = state.dbContact?.marshaled != nil
+      canConfirmRequest = state.dbContact?.marshaled != nil
+      canCheckAuthorization = state.dbContact?.marshaled != nil
     }
   }
 
@@ -109,6 +117,7 @@ public struct ContactView: View {
 
           Section {
             ContactAuthStatusView(dbContact.authStatus)
+
             Button {
               viewStore.send(.sendRequestTapped)
             } label: {
@@ -118,6 +127,8 @@ public struct ContactView: View {
                 Image(systemName: "chevron.forward")
               }
             }
+            .disabled(!viewStore.canSendRequest)
+
             Button {
               viewStore.send(.verifyContactTapped)
             } label: {
@@ -127,6 +138,8 @@ public struct ContactView: View {
                 Image(systemName: "chevron.forward")
               }
             }
+            .disabled(!viewStore.canVerifyContact)
+
             Button {
               viewStore.send(.confirmRequestTapped)
             } label: {
@@ -136,6 +149,8 @@ public struct ContactView: View {
                 Image(systemName: "chevron.forward")
               }
             }
+            .disabled(!viewStore.canConfirmRequest)
+
             Button {
               viewStore.send(.checkAuthTapped)
             } label: {
@@ -145,6 +160,7 @@ public struct ContactView: View {
                 Image(systemName: "chevron.forward")
               }
             }
+            .disabled(!viewStore.canCheckAuthorization)
           } header: {
             Text("Auth")
           }
-- 
GitLab