Fix hover race condition by removing timer delay
This commit is contained in:
parent
ba4a5d3f86
commit
2157a9c2f7
@ -3,18 +3,14 @@ import SwiftUI
|
|||||||
// MARK: - Hover Interaction Manager
|
// MARK: - Hover Interaction Manager
|
||||||
class HoverInteraction: ObservableObject {
|
class HoverInteraction: ObservableObject {
|
||||||
@Published var isHovered: Bool = false
|
@Published var isHovered: Bool = false
|
||||||
private var timer: Timer?
|
|
||||||
|
|
||||||
func setHover(on: Bool, delay: TimeInterval = 0.1) {
|
func setHover(on: Bool) {
|
||||||
if on {
|
if on {
|
||||||
timer?.invalidate()
|
|
||||||
if !isHovered {
|
if !isHovered {
|
||||||
isHovered = true
|
isHovered = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
timer = Timer.scheduledTimer(withTimeInterval: delay, repeats: false) { [weak self] _ in
|
isHovered = false
|
||||||
self?.isHovered = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user