android, desktop: disabling user picker items when chat is stopped (#3696)

This commit is contained in:
Stanislav Dmitrenko 2024-01-17 19:51:26 +07:00 committed by GitHub
parent ab8a87acad
commit 3918c5306d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -245,23 +245,31 @@ fun UserPicker(
}
@Composable
fun UserProfilePickerItem(u: User, unreadCount: Int = 0, onLongClick: () -> Unit = {}, openSettings: () -> Unit = {}, onClick: () -> Unit) {
fun UserProfilePickerItem(
u: User,
unreadCount: Int = 0,
enabled: Boolean = chatModel.chatRunning.value == true || chatModel.connectedToRemote,
onLongClick: () -> Unit = {},
openSettings: () -> Unit = {},
onClick: () -> Unit
) {
Row(
Modifier
.fillMaxWidth()
.sizeIn(minHeight = 46.dp)
.combinedClickable(
enabled = enabled,
onClick = if (u.activeUser) openSettings else onClick,
onLongClick = onLongClick,
interactionSource = remember { MutableInteractionSource() },
indication = if (!u.activeUser) LocalIndication.current else null
)
.onRightClick { onLongClick() }
.onRightClick { if (enabled) onLongClick() }
.padding(start = DEFAULT_PADDING_HALF, end = DEFAULT_PADDING),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
UserProfileRow(u)
UserProfileRow(u, enabled)
if (u.activeUser) {
Icon(painterResource(MR.images.ic_done_filled), null, Modifier.size(20.dp), tint = MaterialTheme.colors.onBackground)
} else if (u.hidden) {
@ -289,7 +297,7 @@ fun UserProfilePickerItem(u: User, unreadCount: Int = 0, onLongClick: () -> Unit
}
@Composable
fun UserProfileRow(u: User) {
fun UserProfileRow(u: User, enabled: Boolean = chatModel.chatRunning.value == true || chatModel.connectedToRemote) {
Row(
Modifier
.widthIn(max = windowWidth() * 0.7f)
@ -304,7 +312,7 @@ fun UserProfileRow(u: User) {
u.displayName,
modifier = Modifier
.padding(start = 10.dp, end = 8.dp),
color = MenuTextColor,
color = if (enabled) MenuTextColor else MaterialTheme.colors.secondary,
fontWeight = if (u.activeUser) FontWeight.Medium else FontWeight.Normal
)
}