@@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.padding
1313import androidx.compose.foundation.layout.requiredSize
1414import androidx.compose.foundation.layout.size
1515import androidx.compose.foundation.lazy.LazyColumn
16+ import androidx.compose.foundation.lazy.items
1617import androidx.compose.material.icons.Icons
1718import androidx.compose.material.icons.filled.Add
1819import androidx.compose.material.icons.filled.ContentCopy
@@ -130,8 +131,8 @@ internal fun UserProfileScreenContent(
130131 }
131132
132133 // Display Name section
133- item { SectionHeader (stringResource(R .string.title_sectionDisplayName)) }
134- item {
134+ item(contentType = " section_header " ) { SectionHeader (stringResource(R .string.title_sectionDisplayName)) }
135+ item(contentType = " profile_value " ) {
135136 val name = state.displayName
136137 if (! name.isNullOrEmpty()) {
137138 CardRow { ProfileValueRow (value = name) }
@@ -151,8 +152,8 @@ internal fun UserProfileScreenContent(
151152 }
152153
153154 // Phone section
154- item { SectionHeader (stringResource(R .string.title_sectionPhone)) }
155- item {
155+ item(contentType = " section_header " ) { SectionHeader (stringResource(R .string.title_sectionPhone)) }
156+ item(contentType = " contact_method " ) {
156157 if (state.phoneNumber != null ) {
157158 SwipeActionRow (
158159 onDelete = { dispatch(UserProfileViewModel .Event .UnlinkPhoneClicked ) },
@@ -178,8 +179,8 @@ internal fun UserProfileScreenContent(
178179 }
179180
180181 // Email section
181- item { SectionHeader (stringResource(R .string.title_sectionEmail)) }
182- item {
182+ item(contentType = " section_header " ) { SectionHeader (stringResource(R .string.title_sectionEmail)) }
183+ item(contentType = " contact_method " ) {
183184 if (state.emailAddress != null ) {
184185 SwipeActionRow (
185186 onDelete = { dispatch(UserProfileViewModel .Event .UnlinkEmailClicked ) },
@@ -203,9 +204,9 @@ internal fun UserProfileScreenContent(
203204 }
204205
205206 // Social Accounts section
206- item { SectionHeader (stringResource(R .string.title_sectionSocialAccounts)) }
207+ item(contentType = " section_header " ) { SectionHeader (stringResource(R .string.title_sectionSocialAccounts)) }
207208 if (state.socialAccounts.isEmpty()) {
208- item {
209+ item(contentType = " empty_state " ) {
209210 CardRow {
210211 Text (
211212 text = stringResource(R .string.subtitle_noSocialAccounts),
@@ -219,9 +220,9 @@ internal fun UserProfileScreenContent(
219220 }
220221 }
221222 } else {
222- state.socialAccounts.forEach { account ->
223+ items( state.socialAccounts, key = { it.id }, contentType = { " social_account " }) { account ->
223224 when (account) {
224- is SocialAccount .TwitterX -> item(key = account.id) {
225+ is SocialAccount .TwitterX -> {
225226 SwipeActionRow (
226227 onDelete = {
227228 dispatch(
0 commit comments