Fix RoomDetailsEditView avatar picker for spaces

- Use correct AvatarType based on whether editing a space or room
- Add roomRawName to remember key to update avatar when name changes
- Respect canChangeAvatar state to disable picker when not permitted
This commit is contained in:
ganfra 2026-01-23 12:12:12 +01:00
parent 4a43076fc2
commit a12394a77d

View file

@ -101,9 +101,9 @@ fun RoomDetailsEditView(
.verticalScroll(rememberScrollState()) .verticalScroll(rememberScrollState())
) { ) {
Spacer(modifier = Modifier.height(24.dp)) Spacer(modifier = Modifier.height(24.dp))
val avatarPickerState = remember(state.roomAvatarUrl) { val avatarPickerState = remember(state.roomAvatarUrl, state.roomRawName) {
val size = AvatarSize.EditRoomDetails val size = AvatarSize.EditRoomDetails
val type = AvatarType.Room() val type = if (state.isSpace) AvatarType.Space() else AvatarType.Room()
AvatarPickerState.Selected( AvatarPickerState.Selected(
avatarData = AvatarData(id = state.roomId.value, name = state.roomRawName, size = size, url = state.roomAvatarUrl), avatarData = AvatarData(id = state.roomId.value, name = state.roomRawName, size = size, url = state.roomAvatarUrl),
type = type type = type
@ -112,6 +112,7 @@ fun RoomDetailsEditView(
AvatarPickerView( AvatarPickerView(
state = avatarPickerState, state = avatarPickerState,
onClick = ::onAvatarClick, onClick = ::onAvatarClick,
enabled = state.canChangeAvatar,
modifier = Modifier.align(Alignment.CenterHorizontally), modifier = Modifier.align(Alignment.CenterHorizontally),
) )
Spacer(modifier = Modifier.height(32.dp)) Spacer(modifier = Modifier.height(32.dp))