Restore previous swiping mechanism

This commit is contained in:
Geoffroy Bonneville
2025-10-10 20:54:25 -04:00
parent 30d3efa9de
commit 038a97672f

View File

@@ -28,8 +28,6 @@ import androidx.compose.material3.SwipeToDismissBoxValue
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.rememberSwipeToDismissBoxState import androidx.compose.material3.rememberSwipeToDismissBoxState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.alpha import androidx.compose.ui.draw.alpha
@@ -42,7 +40,6 @@ import androidx.compose.ui.unit.sp
import com.wismna.geoffroy.donext.domain.model.Priority import com.wismna.geoffroy.donext.domain.model.Priority
import com.wismna.geoffroy.donext.domain.model.Task import com.wismna.geoffroy.donext.domain.model.Task
import com.wismna.geoffroy.donext.presentation.viewmodel.TaskItemViewModel import com.wismna.geoffroy.donext.presentation.viewmodel.TaskItemViewModel
import kotlinx.coroutines.flow.filter
@Composable @Composable
fun TaskItemScreen( fun TaskItemScreen(
@@ -55,25 +52,17 @@ fun TaskItemScreen(
val viewModel = TaskItemViewModel(task) val viewModel = TaskItemViewModel(task)
val dismissState = rememberSwipeToDismissBoxState( val dismissState = rememberSwipeToDismissBoxState(
confirmValueChange = {
when (it) {
SwipeToDismissBoxValue.StartToEnd -> { onSwipeRight() }
SwipeToDismissBoxValue.EndToStart -> { onSwipeLeft() }
SwipeToDismissBoxValue.Settled -> return@rememberSwipeToDismissBoxState false
}
return@rememberSwipeToDismissBoxState true
},
// positional threshold of 25% // positional threshold of 25%
positionalThreshold = { it * .25f } positionalThreshold = { it * .25f }
) )
LaunchedEffect(dismissState) {
snapshotFlow { dismissState.targetValue }
.filter { it != SwipeToDismissBoxValue.Settled }
.collect { target ->
when (target) {
SwipeToDismissBoxValue.StartToEnd -> {
onSwipeRight()
dismissState.reset()
}
SwipeToDismissBoxValue.EndToStart -> {
onSwipeLeft()
}
else -> Unit
}
}
}
val baseStyle = MaterialTheme.typography.bodyLarge.copy( val baseStyle = MaterialTheme.typography.bodyLarge.copy(
fontWeight = when (viewModel.priority) { fontWeight = when (viewModel.priority) {