Let JoinRoomView render the InviteSender

This commit is contained in:
Benoit Marty 2024-04-18 15:19:03 +02:00
parent 2974156ee1
commit 473f0e8395
12 changed files with 159 additions and 53 deletions

View file

@ -66,7 +66,8 @@ import io.element.android.libraries.designsystem.theme.roomListRoomName
import io.element.android.libraries.designsystem.theme.unreadIndicator
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.ui.components.InviteSender
import io.element.android.libraries.matrix.ui.components.InviteSenderView
import io.element.android.libraries.matrix.ui.model.InviteSender
import io.element.android.libraries.ui.strings.CommonStrings
import timber.log.Timber
@ -96,7 +97,10 @@ internal fun RoomSummaryRow(
InviteSubtitle(isDirect = room.isDirect, inviteSender = room.inviteSender, canonicalAlias = room.canonicalAlias)
if (!room.isDirect && room.inviteSender != null) {
Spacer(modifier = Modifier.height(4.dp))
InviteSenderRow(sender = room.inviteSender)
InviteSenderView(
modifier = Modifier.fillMaxWidth(),
inviteSender = room.inviteSender,
)
}
Spacer(modifier = Modifier.height(12.dp))
InviteButtonsRow(
@ -290,24 +294,6 @@ private fun InviteNameAndIndicatorRow(
}
}
@Composable
private fun InviteSenderRow(
sender: InviteSender,
modifier: Modifier = Modifier
) {
Row(
horizontalArrangement = Arrangement.spacedBy(4.dp),
modifier = modifier.fillMaxWidth(),
) {
Avatar(avatarData = sender.avatarData)
Text(
text = sender.annotatedString(),
style = ElementTheme.typography.fontBodyMdRegular,
color = MaterialTheme.colorScheme.secondary,
)
}
}
@Composable
private fun InviteButtonsRow(
onAcceptClicked: () -> Unit,

View file

@ -26,7 +26,7 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
import io.element.android.libraries.matrix.api.roomlist.RoomSummary
import io.element.android.libraries.matrix.ui.components.InviteSender
import io.element.android.libraries.matrix.ui.model.toInviteSender
import javax.inject.Inject
class RoomListRoomSummaryFactory @Inject constructor(
@ -83,18 +83,7 @@ class RoomListRoomSummaryFactory @Inject constructor(
hasRoomCall = roomSummary.details.hasRoomCall,
isDirect = roomSummary.details.isDirect,
isFavorite = roomSummary.details.isFavorite,
inviteSender = roomSummary.details.inviter?.run {
InviteSender(
userId = userId,
displayName = displayName ?: "",
avatarData = AvatarData(
id = userId.value,
name = displayName,
url = avatarUrl,
size = AvatarSize.InviteSender,
),
)
},
inviteSender = roomSummary.details.inviter?.toInviteSender(),
isDm = roomSummary.details.isDm,
canonicalAlias = roomSummary.details.canonicalAlias,
displayType = if (roomSummary.details.currentUserMembership == CurrentUserMembership.INVITED) {

View file

@ -21,7 +21,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.ui.components.InviteSender
import io.element.android.libraries.matrix.ui.model.InviteSender
@Immutable
data class RoomListRoomSummary(

View file

@ -23,7 +23,7 @@ import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
import io.element.android.libraries.matrix.ui.components.InviteSender
import io.element.android.libraries.matrix.ui.model.InviteSender
open class RoomListRoomSummaryProvider : PreviewParameterProvider<RoomListRoomSummary> {
override val values: Sequence<RoomListRoomSummary>