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.LazyColumn
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items 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.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import dev.msfjarvis.claw.common.posts.PostActions import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.database.local.SavedPost import dev.msfjarvis.claw.database.local.SavedPost
@OptIn(ExperimentalMaterialApi::class)
@Composable @Composable
fun DatabasePosts( fun DatabasePosts(
items: List<SavedPost>, items: List<SavedPost>,
@ -21,6 +26,18 @@ fun DatabasePosts(
modifier = modifier, modifier = modifier,
) { ) {
items(items) { item -> items(items) { item ->
val dismissState =
rememberDismissState(
confirmStateChange = {
postActions.toggleSave(item)
true
}
)
SwipeToDismiss(
state = dismissState,
directions = setOf(DismissDirection.EndToStart),
background = {},
) {
ListItem( ListItem(
item = item, item = item,
isSaved = isSaved, isSaved = isSaved,
@ -29,3 +46,4 @@ fun DatabasePosts(
} }
} }
} }
}