From ccbd037507426c983a30a2a2131f8d7136393f4b Mon Sep 17 00:00:00 2001 From: OneWay Date: Fri, 4 Sep 2026 02:05:59 +0800 Subject: [PATCH] refactor: unify swipe reset to snap before clearing offset Snap the Animatable first, clear rawOffset after - no frame with the row still translated while the delete affordance is hidden. --- .../research/ui/settings/components/DictionaryListItem.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/research/ui/settings/components/DictionaryListItem.kt b/app/src/main/java/com/example/research/ui/settings/components/DictionaryListItem.kt index 7270852..4a9d118 100644 --- a/app/src/main/java/com/example/research/ui/settings/components/DictionaryListItem.kt +++ b/app/src/main/java/com/example/research/ui/settings/components/DictionaryListItem.kt @@ -111,8 +111,8 @@ fun DictionaryListItem( snapshotFlow { isDeleteBlockedCurrent() } .collect { blocked -> if (blocked) { + offsetAnim.snapTo(0f) rawOffset = 0f - scope.launch { offsetAnim.snapTo(0f) } } } } @@ -271,8 +271,10 @@ fun DictionaryListItem( onClick = { haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) currentOnDelete() - scope.launch { offsetAnim.snapTo(0f) } - rawOffset = 0f + scope.launch { + offsetAnim.snapTo(0f) + rawOffset = 0f + } }, modifier = Modifier .align(Alignment.CenterEnd)