feat(healthchat): show profile fields on profile screens

Renderer slot in UserProfileView (all three profile screens) shows
specialty, practice, address, contact links and further info from
the HealthChat API, with inline retry on failure.
This commit is contained in:
2026-07-30 20:54:50 +02:00
committed by Sedat Qaja
parent 9f8a39bb74
commit 8f82e578f4
31 changed files with 845 additions and 1 deletions
@@ -35,6 +35,7 @@ dependencies {
implementation(projects.libraries.mediaviewer.api)
implementation(projects.features.call.api)
implementation(projects.features.enterprise.api)
implementation(projects.features.healthchat.api)
implementation(projects.features.verifysession.api)
api(projects.features.userprofile.api)
api(projects.features.userprofile.shared)
@@ -19,6 +19,7 @@ import dev.zacsweers.metro.Assisted
import dev.zacsweers.metro.AssistedInject
import im.vector.app.features.analytics.plan.MobileScreen
import io.element.android.annotations.ContributesNode
import io.element.android.features.healthchat.api.HealthChatProfileSectionRenderer
import io.element.android.features.userprofile.shared.UserProfileNodeHelper
import io.element.android.features.userprofile.shared.UserProfileView
import io.element.android.libraries.architecture.NodeInputs
@@ -37,6 +38,8 @@ class UserProfileNode(
private val analyticsService: AnalyticsService,
private val permalinkBuilder: PermalinkBuilder,
presenterFactory: UserProfilePresenter.Factory,
// HealthChat fork: renders the extended profile fields.
private val healthChatProfileSectionRenderer: HealthChatProfileSectionRenderer,
) : Node(buildContext, plugins = plugins) {
data class UserProfileInputs(
val userId: UserId
@@ -78,6 +81,9 @@ class UserProfileNode(
onStartCall = callback::startCall,
openAvatarPreview = callback::navigateToAvatarPreview,
onVerifyClick = callback::startVerifyUserFlow,
healthChatProfileSection = { userId, isCurrentUser ->
healthChatProfileSectionRenderer.Render(userId, isCurrentUser, Modifier)
},
)
}
}