From 80dc5a59f8d7a39d0fb5acb1af89e5b87b632944 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Wed, 9 Feb 2022 13:08:11 +0530 Subject: [PATCH] android: allow swipe to remove from saved posts --- .../claw/android/ui/lists/DatabasePosts.kt | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) 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 d1110791..9eda8dea 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 @@ -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, @@ -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, + ) + } } } }