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
parent 2db4c9847f
commit 1aeb4655bc
31 changed files with 844 additions and 1 deletions
@@ -37,6 +37,7 @@ dependencies {
implementation(projects.libraries.featureflag.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)
},
)
}
}