Make the configure room screen scrollable

This commit is contained in:
Florian Renaud 2023-05-11 23:37:00 +02:00
parent ac0635421b
commit 8c6bf1ba18
5 changed files with 42 additions and 33 deletions

View file

@ -21,8 +21,8 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.selection.selectableGroup import androidx.compose.foundation.selection.selectableGroup
import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.ModalBottomSheetValue import androidx.compose.material.ModalBottomSheetValue
@ -96,33 +96,42 @@ fun ConfigureRoomView(
) )
} }
) { padding -> ) { padding ->
Column( LazyColumn(
modifier = Modifier.padding(padding), modifier = Modifier.padding(padding),
verticalArrangement = Arrangement.spacedBy(24.dp), verticalArrangement = Arrangement.spacedBy(24.dp),
) { ) {
RoomNameWithAvatar( item {
modifier = Modifier.padding(horizontal = 16.dp), RoomNameWithAvatar(
avatarUri = state.config.avatarUri, modifier = Modifier.padding(horizontal = 16.dp),
roomName = state.config.roomName.orEmpty(), avatarUri = state.config.avatarUri,
onAvatarClick = ::onAvatarClicked, roomName = state.config.roomName.orEmpty(),
onRoomNameChanged = { state.eventSink(ConfigureRoomEvents.RoomNameChanged(it)) }, onAvatarClick = ::onAvatarClicked,
) onRoomNameChanged = { state.eventSink(ConfigureRoomEvents.RoomNameChanged(it)) },
RoomTopic( )
modifier = Modifier.padding(horizontal = 16.dp), }
topic = state.config.topic.orEmpty(), item {
onTopicChanged = { state.eventSink(ConfigureRoomEvents.TopicChanged(it)) }, RoomTopic(
) modifier = Modifier.padding(horizontal = 16.dp),
SelectedUsersList( topic = state.config.topic.orEmpty(),
contentPadding = PaddingValues(horizontal = 24.dp), onTopicChanged = { state.eventSink(ConfigureRoomEvents.TopicChanged(it)) },
selectedUsers = state.config.invites, )
onUserRemoved = { state.eventSink(ConfigureRoomEvents.RemoveFromSelection(it)) }, }
) if (state.config.invites.isNotEmpty()) {
Spacer(Modifier.weight(1f)) item {
RoomPrivacyOptions( SelectedUsersList(
modifier = Modifier.padding(bottom = 40.dp), contentPadding = PaddingValues(horizontal = 24.dp),
selected = state.config.privacy, selectedUsers = state.config.invites,
onOptionSelected = { state.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(it.privacy)) }, onUserRemoved = { state.eventSink(ConfigureRoomEvents.RemoveFromSelection(it)) },
) )
}
}
item {
RoomPrivacyOptions(
modifier = Modifier.padding(bottom = 40.dp),
selected = state.config.privacy,
onOptionSelected = { state.eventSink(ConfigureRoomEvents.RoomPrivacyChanged(it.privacy)) },
)
}
} }
} }

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:24ad0b5edc27ddddca573b37f82579715d880793c0dc880248d2b572dd6d6a40 oid sha256:7a3923915741c22054ceb2f34acdfdb629ccc14b8aad844206c64a7c63ef6cf6
size 64379 size 63704

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:b0c9d4eaaaf6a691f43d25e0855ee056b69fa090ad8c53b26732c8f2532e2138 oid sha256:6c6f2959adf84474dba18c44d81c2d9805ebb06ba8c8bf204f1845d2e62be84d
size 103384 size 103395

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:4023481d2a045d7e0d824db81b28ee47c4bcdc568d98537b3573d554e0b76e32 oid sha256:02c3a6d536136e6c4db7e1b40a53506ec21e29810ee4067be4066851edfe8aee
size 58445 size 57519

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:8f953d0df467ad4cd1ae24291e9593945b945712506f093bdcae3da975f8ca91 oid sha256:758362366ee7b50a33761401fd400698c124e468183459d4657cb707ea965424
size 96800 size 96777