commit d83145d68778e80469a03b5663bc57f318374477
parent 3a7c2c8ce7c6919f291ef99732ef9c7a79044a83
Author: Michael Camilleri <[email protected]>
Date: Fri, 27 Feb 2026 23:07:30 +0900
Fix tearing between elements on slide actions
Co-Authored-By: Codex GPT 5.3 <[email protected]>
Diffstat:
2 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/ListlessiOS/Helpers/TaskRowSwipeGesture.swift b/ListlessiOS/Helpers/TaskRowSwipeGesture.swift
@@ -55,7 +55,6 @@ struct TaskRowSwipeGesture: ViewModifier {
// Only the content moves
content
.offset(x: swipeOffset)
- .animation(.spring(response: 0.3, dampingFraction: 0.8), value: swipeOffset)
.contentShape(Rectangle())
}
.simultaneousGesture(
diff --git a/ListlessiOS/Views/TaskRowView.swift b/ListlessiOS/Views/TaskRowView.swift
@@ -64,15 +64,12 @@ struct TaskRowView: View {
let previewCompleted = isSwipeTriggered && swipeDirection == .right
? !task.isCompleted
: task.isCompleted
- ZStack {
- Image(systemName: "checkmark.circle.fill")
- .opacity(previewCompleted ? 1 : 0)
- Image(systemName: "circle")
- .opacity(previewCompleted ? 0 : 1)
- }
- .transaction { $0.animation = nil }
- .foregroundStyle(Color.secondary)
- .font(.system(size: 17))
+ Image(systemName: previewCompleted ? "checkmark.circle.fill" : "circle")
+ .contentTransition(.identity)
+ .transaction { $0.animation = nil }
+ .frame(width: 22, height: 22)
+ .foregroundStyle(Color.secondary)
+ .font(.system(size: 17))
}
.buttonStyle(.borderless)