I have `SwipeToDismiss` for items of `LazyColumn` ...
# compose
m
I have
SwipeToDismiss
for items of
LazyColumn
and I want to let the user know that items are swipeable. items in questions are tasks and when used enters their first task, ever, I want to swipe item programatically and let them know that there is the option. but I can’t make it work and I don’t understand why. can anyone help me? code in thread.
Copy code
@Composable
private fun Tasks(
    state: EditDayState,
    deleteTask: (Task) -> Unit,
    modifier: Modifier = Modifier,
) {
    BoxWithConstraints {
        val width = constraints.maxWidth.toFloat()
        LazyColumn(
            contentPadding = PaddingValues(bottom = 40.dp),
            content = {
                itemsIndexed(
                    key = { _, task -> task.id },
                    items = state.tasks,
                    itemContent = { index, task ->
                        val showDismissTutorial by remember(state) {
                            derivedStateOf { state.isFirstTimeCreatingTask }
                        }
                        val currentTask by rememberUpdatedState(task)
                        val dismissState = rememberDismissState(
                            confirmStateChange = {
                                if (it == DismissValue.DismissedToStart)
                                    deleteTask(currentTask)
                                it == DismissValue.DismissedToStart
                            }
                        )
                        if (showDismissTutorial) {
                            val infiniteTransition = rememberInfiniteTransition()
                            val xDelta by infiniteTransition.animateFloat(
                                initialValue = 0f,
                                targetValue = width * (DismissThreshold) / 2f,
                                animationSpec = infiniteRepeatable(
                                    animation = tween(500, delayMillis = 500,),
                                    repeatMode = RepeatMode.Reverse,
                                )
                            )

                            LaunchedEffect(xDelta) {
                                dismissState.performDrag(xDelta - dismissState.offset.value)
                            }
                        }
                        SwipeToDismiss(
                            state = dismissState,
                            dismissThresholds = { FractionalThreshold(DismissThreshold) },
                            background = { TaskSwipeBackground(dismissState) },
                            dismissContent = {
                                Task(
                                    index = index,
                                    task = task,
                                    modifier = modifier,
                                )
                            },
                            directions = setOf(DismissDirection.EndToStart),
                            modifier = Modifier.animateItemPlacement(),
                        )
                    }
                )
            },
            modifier = modifier,
        )
    }
}