diff --git a/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift b/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift index d775df01eeed7ee6175b00d231149a351be84882..a96111402f7d34065fc8aa704c838b3a44faab64 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") }