diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/DatabasePosts.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/DatabasePosts.kt new file mode 100644 index 00000000..c98ca84c --- /dev/null +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/DatabasePosts.kt @@ -0,0 +1,40 @@ +package dev.msfjarvis.claw.android.ui + +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyListState +import androidx.compose.foundation.lazy.items +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import dev.msfjarvis.claw.common.posts.LobstersCard +import dev.msfjarvis.claw.common.posts.PostActions +import dev.msfjarvis.claw.database.local.SavedPost + +@Composable +fun DatabasePosts( + items: List, + listState: LazyListState, + isSaved: suspend (SavedPost) -> Boolean, + postActions: PostActions, + modifier: Modifier = Modifier, +) { + LazyColumn( + state = listState, + modifier = modifier, + ) { + items(items) { item -> + var saved by remember(item) { mutableStateOf(false) } + LaunchedEffect(item) { saved = isSaved(item) } + LobstersCard( + post = item, + isSaved = saved, + postActions = postActions, + modifier = modifier, + ) + } + } +}