feat: display role icons in info sheet too

This commit is contained in:
infi 2026-06-20 16:15:04 +02:00
parent 126011a3e3
commit 54a2b2750c
2 changed files with 27 additions and 4 deletions

View File

@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.requiredSize
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -12,11 +13,20 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import chat.stoat.composables.generic.RemoteImage
import chat.stoat.core.model.data.STOAT_FILES
import chat.stoat.core.model.schemas.AutumnResource
@Composable @Composable
fun RoleListEntry(label: String, brush: Brush, modifier: Modifier = Modifier) { fun RoleListEntry(
label: String,
brush: Brush,
icon: AutumnResource?,
modifier: Modifier = Modifier
) {
Row( Row(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = modifier modifier = modifier
@ -27,6 +37,17 @@ fun RoleListEntry(label: String, brush: Brush, modifier: Modifier = Modifier) {
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
if (icon != null) {
Spacer(Modifier.requiredSize(4.dp))
RemoteImage(
url = "$STOAT_FILES/icons/${icon.id}",
contentScale = ContentScale.Fit,
description = null,
modifier = Modifier
.size(16.dp)
)
}
Spacer(Modifier.weight(1f)) Spacer(Modifier.weight(1f))
Box( Box(

View File

@ -190,7 +190,8 @@ fun UserInfoSheet(
RoleListEntry( RoleListEntry(
label = role.name ?: "null", label = role.name ?: "null",
brush = role.colour?.let { BrushCompat.parseColour(it) } brush = role.colour?.let { BrushCompat.parseColour(it) }
?: Brush.solidColor(LocalContentColor.current) ?: Brush.solidColor(LocalContentColor.current),
icon = role.icon
) )
} }
} }
@ -205,8 +206,9 @@ fun UserInfoSheet(
role?.let { role?.let {
RoleListEntry( RoleListEntry(
label = role.name ?: "null", label = role.name ?: "null",
brush = role.colour?.let { BrushCompat.parseColour(it) } brush = role.colour?.let { c -> BrushCompat.parseColour(c) }
?: Brush.solidColor(LocalContentColor.current) ?: Brush.solidColor(LocalContentColor.current),
icon = role.icon
) )
} }
} }