diff --git a/Examples/xx-messenger/Sources/AppCore/SharedUI/ContactAuthStatusView.swift b/Examples/xx-messenger/Sources/AppCore/SharedUI/ContactAuthStatusView.swift
new file mode 100644
index 0000000000000000000000000000000000000000..355749c2e05f7feb9ba4bcdb4d2821309d31712b
--- /dev/null
+++ b/Examples/xx-messenger/Sources/AppCore/SharedUI/ContactAuthStatusView.swift
@@ -0,0 +1,94 @@
+import SwiftUI
+import XXModels
+
+public struct ContactAuthStatusView: View {
+  public init(_ authStatus: Contact.AuthStatus) {
+    self.authStatus = authStatus
+  }
+
+  public var authStatus: Contact.AuthStatus
+
+  public var body: some View {
+    switch authStatus {
+    case .stranger:
+      HStack {
+        Text("Stranger")
+        Spacer()
+        Image(systemName: "person.fill.questionmark")
+      }
+
+    case .requesting:
+      HStack {
+        Text("Sending auth request")
+        Spacer()
+        ProgressView()
+      }
+
+    case .requested:
+      HStack {
+        Text("Request sent")
+        Spacer()
+        Image(systemName: "paperplane")
+      }
+
+    case .requestFailed:
+      HStack {
+        Text("Sending request failed")
+        Spacer()
+        Image(systemName: "xmark.diamond.fill")
+          .foregroundColor(.red)
+      }
+
+    case .verificationInProgress:
+      HStack {
+        Text("Verification is progress")
+        Spacer()
+        ProgressView()
+      }
+
+    case .verified:
+      HStack {
+        Text("Verified")
+        Spacer()
+        Image(systemName: "person.fill.checkmark")
+      }
+
+    case .verificationFailed:
+      HStack {
+        Text("Verification failed")
+        Spacer()
+        Image(systemName: "xmark.diamond.fill")
+          .foregroundColor(.red)
+      }
+
+    case .confirming:
+      HStack {
+        Text("Confirming auth request")
+        Spacer()
+        ProgressView()
+      }
+
+    case .confirmationFailed:
+      HStack {
+        Text("Confirmation failed")
+        Spacer()
+        Image(systemName: "xmark.diamond.fill")
+          .foregroundColor(.red)
+      }
+
+    case .friend:
+      HStack {
+        Text("Friend")
+        Spacer()
+        Image(systemName: "person.fill.checkmark")
+      }
+
+    case .hidden:
+      HStack {
+        Text("Hidden")
+        Spacer()
+        Image(systemName: "eye.slash")
+      }
+    }
+  }
+}
diff --git a/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift b/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
index 48743b07af69b695c6f6ec34159d2b0c75400458..252a1fd1e8ffc9593e37897e7a8b76ab75089eb9 100644
--- a/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
+++ b/Examples/xx-messenger/Sources/ContactFeature/ContactView.swift
@@ -100,87 +100,7 @@ public struct ContactView: View {
           }
 
           Section {
-            switch dbContact.authStatus {
-            case .stranger:
-              HStack {
-                Text("Stranger")
-                Spacer()
-                Image(systemName: "person.fill.questionmark")
-              }
-
-            case .requesting:
-              HStack {
-                Text("Sending auth request")
-                Spacer()
-                ProgressView()
-              }
-
-            case .requested:
-              HStack {
-                Text("Request sent")
-                Spacer()
-                Image(systemName: "paperplane")
-              }
-
-            case .requestFailed:
-              HStack {
-                Text("Sending request failed")
-                Spacer()
-                Image(systemName: "xmark.diamond.fill")
-                  .foregroundColor(.red)
-              }
-
-            case .verificationInProgress:
-              HStack {
-                Text("Verification is progress")
-                Spacer()
-                ProgressView()
-              }
-
-            case .verified:
-              HStack {
-                Text("Verified")
-                Spacer()
-                Image(systemName: "person.fill.checkmark")
-              }
-
-            case .verificationFailed:
-              HStack {
-                Text("Verification failed")
-                Spacer()
-                Image(systemName: "xmark.diamond.fill")
-                  .foregroundColor(.red)
-              }
-
-            case .confirming:
-              HStack {
-                Text("Confirming auth request")
-                Spacer()
-                ProgressView()
-              }
-
-            case .confirmationFailed:
-              HStack {
-                Text("Confirmation failed")
-                Spacer()
-                Image(systemName: "xmark.diamond.fill")
-                  .foregroundColor(.red)
-              }
-
-            case .friend:
-              HStack {
-                Text("Friend")
-                Spacer()
-                Image(systemName: "person.fill.checkmark")
-              }
-
-            case .hidden:
-              HStack {
-                Text("Hidden")
-                Spacer()
-                Image(systemName: "eye.slash")
-              }
-            }
+            ContactAuthStatusView(dbContact.authStatus)
             Button {
               viewStore.send(.sendRequestTapped)
             } label: {