android: allow swipe to remove from saved posts

This commit is contained in:
Harsh Shandilya 2022-02-09 13:08:11 +05:30
parent 706680ec42
commit 80dc5a59f8
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80

View file

@ -3,11 +3,16 @@ package dev.msfjarvis.claw.android.ui.lists
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items
import androidx.compose.material.DismissDirection
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.SwipeToDismiss
import androidx.compose.material.rememberDismissState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.database.local.SavedPost
@OptIn(ExperimentalMaterialApi::class)
@Composable
fun DatabasePosts(
items: List<SavedPost>,
@ -21,11 +26,24 @@ fun DatabasePosts(
modifier = modifier,
) {
items(items) { item ->
ListItem(
item = item,
isSaved = isSaved,
postActions = postActions,
)
val dismissState =
rememberDismissState(
confirmStateChange = {
postActions.toggleSave(item)
true
}
)
SwipeToDismiss(
state = dismissState,
directions = setOf(DismissDirection.EndToStart),
background = {},
) {
ListItem(
item = item,
isSaved = isSaved,
postActions = postActions,
)
}
}
}
}