fix: 修复日期检查器滑动删除 state 错位并消除 deprecation warning

- 将 dismissState 移入 key(row.id) 内部,修复删除后 state 被错误复用的问题
- 新增 pendingDeleteIds 延迟删除机制,滑动删除播放 shrinkVertically + fadeOut 退场动画
- 移除废弃的 confirmValueChange 参数,改用 LaunchedEffect 监听 dismissState.currentValue
This commit is contained in:
xfy 2026-06-01 17:21:42 +08:00
parent 877a3f9aa4
commit 484045950f

View File

@ -237,16 +237,13 @@ fun DateCheckerScreen(onBack: () -> Unit, modifier: Modifier = Modifier) {
val isBeingDeleted = row.id in pendingDeleteIds
key(row.id) {
val dismissState = rememberSwipeToDismissBoxState(
confirmValueChange = { value ->
if (value == SwipeToDismissBoxValue.EndToStart) {
pendingDeleteIds = pendingDeleteIds + row.id
true
} else {
false
}
val dismissState = rememberSwipeToDismissBoxState()
androidx.compose.runtime.LaunchedEffect(dismissState.currentValue) {
if (dismissState.currentValue == SwipeToDismissBoxValue.EndToStart && !isBeingDeleted) {
pendingDeleteIds = pendingDeleteIds + row.id
}
)
}
var visible by remember { mutableStateOf(false) }