diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/DatabasePosts.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/DatabasePosts.kt index 09c08eae..d9eec7b7 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/DatabasePosts.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/lists/DatabasePosts.kt @@ -9,13 +9,22 @@ package dev.msfjarvis.claw.android.ui.lists import androidx.activity.compose.ReportDrawn import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.Inbox import androidx.compose.material3.Divider +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.ui.decorations.MonthHeader import dev.msfjarvis.claw.database.local.SavedPost @@ -32,22 +41,31 @@ fun DatabasePosts( ) { ReportDrawn() Box(modifier = modifier.fillMaxSize()) { - LazyColumn( - state = listState, - ) { - items.forEach { (month, posts) -> - stickyHeader(contentType = "month-header") { MonthHeader(month = month) } - items( - items = posts, - key = { it.shortId }, - contentType = { "LobstersItem" }, - ) { item -> - ListItem( - item = item, - isSaved = { true }, - postActions = postActions, - ) - Divider() + if (items.isEmpty()) { + Column(modifier = Modifier.align(Alignment.Center)) { + Icon( + imageVector = Icons.Outlined.Inbox, + contentDescription = "Empty inbox icon", + modifier = Modifier.align(Alignment.CenterHorizontally).size(36.dp), + ) + Text(text = "No saved posts", style = MaterialTheme.typography.headlineSmall) + } + } else { + LazyColumn(state = listState) { + items.forEach { (month, posts) -> + stickyHeader(contentType = "month-header") { MonthHeader(month = month) } + items( + items = posts, + key = { it.shortId }, + contentType = { "LobstersItem" }, + ) { item -> + ListItem( + item = item, + isSaved = { true }, + postActions = postActions, + ) + Divider() + } } } }