Merge pull request #2426 from element-hq/feature/fga/room_list_empty_ui
RoomList : allow to show empty state and invites.
This commit is contained in:
commit
e49b677862
2 changed files with 52 additions and 51 deletions
|
|
@ -42,6 +42,8 @@ data class RoomListState(
|
||||||
val displayMigrationStatus: Boolean,
|
val displayMigrationStatus: Boolean,
|
||||||
val eventSink: (RoomListEvents) -> Unit,
|
val eventSink: (RoomListEvents) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
val displayEmptyState = roomList is AsyncData.Success && roomList.data.isEmpty()
|
||||||
|
|
||||||
sealed interface ContextMenu {
|
sealed interface ContextMenu {
|
||||||
data object Hidden : ContextMenu
|
data object Hidden : ContextMenu
|
||||||
data class Shown(
|
data class Shown(
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,6 @@ import io.element.android.features.roomlist.impl.components.RoomSummaryRow
|
||||||
import io.element.android.features.roomlist.impl.migration.MigrationScreenView
|
import io.element.android.features.roomlist.impl.migration.MigrationScreenView
|
||||||
import io.element.android.features.roomlist.impl.model.RoomListRoomSummary
|
import io.element.android.features.roomlist.impl.model.RoomListRoomSummary
|
||||||
import io.element.android.features.roomlist.impl.search.RoomListSearchView
|
import io.element.android.features.roomlist.impl.search.RoomListSearchView
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.theme.components.Button
|
import io.element.android.libraries.designsystem.theme.components.Button
|
||||||
|
|
@ -135,9 +134,10 @@ fun RoomListView(
|
||||||
@Composable
|
@Composable
|
||||||
private fun EmptyRoomListView(
|
private fun EmptyRoomListView(
|
||||||
onCreateRoomClicked: () -> Unit,
|
onCreateRoomClicked: () -> Unit,
|
||||||
|
modifier: Modifier = Modifier
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.fillMaxSize(),
|
modifier = modifier.fillMaxSize(),
|
||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
verticalArrangement = Arrangement.Center
|
verticalArrangement = Arrangement.Center
|
||||||
) {
|
) {
|
||||||
|
|
@ -216,9 +216,6 @@ private fun RoomListContent(
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
content = { padding ->
|
content = { padding ->
|
||||||
if (state.roomList is AsyncData.Success && state.roomList.data.isEmpty()) {
|
|
||||||
EmptyRoomListView(onCreateRoomClicked)
|
|
||||||
} else {
|
|
||||||
LazyColumn(
|
LazyColumn(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(padding)
|
.padding(padding)
|
||||||
|
|
@ -229,6 +226,7 @@ private fun RoomListContent(
|
||||||
contentPadding = PaddingValues(bottom = 80.dp)
|
contentPadding = PaddingValues(bottom = 80.dp)
|
||||||
) {
|
) {
|
||||||
when {
|
when {
|
||||||
|
state.displayEmptyState -> Unit
|
||||||
state.displayVerificationPrompt -> {
|
state.displayVerificationPrompt -> {
|
||||||
item {
|
item {
|
||||||
RequestVerificationHeader(
|
RequestVerificationHeader(
|
||||||
|
|
@ -270,8 +268,9 @@ private fun RoomListContent(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (state.displayEmptyState) {
|
||||||
|
EmptyRoomListView(onCreateRoomClicked)
|
||||||
}
|
}
|
||||||
|
|
||||||
MigrationScreenView(isMigrating = state.displayMigrationStatus)
|
MigrationScreenView(isMigrating = state.displayMigrationStatus)
|
||||||
},
|
},
|
||||||
floatingActionButton = {
|
floatingActionButton = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue