Skip to content
Snippets Groups Projects
Commit 71123aab authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Improve show/hide HUD

Schedule operations on main queue
parent 1e75ffe6
No related branches found
No related tags found
1 merge request!98Fix invitation deep link handling
...@@ -19,18 +19,23 @@ public struct HUDManager { ...@@ -19,18 +19,23 @@ public struct HUDManager {
extension HUDManager { extension HUDManager {
public static func live() -> HUDManager { public static func live() -> HUDManager {
let subject = PassthroughSubject<HUDModel?, Never>() let subject = PassthroughSubject<HUDModel?, Never>()
@Dependency(\.mainQueue) var mainQueue
return HUDManager( return HUDManager(
show: .init { model in show: .init { model in
let model = model ?? HUDModel(hasDotAnimation: true) mainQueue.schedule {
subject.send(model) let model = model ?? HUDModel(hasDotAnimation: true)
if model.isAutoDismissable { subject.send(model)
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { if model.isAutoDismissable {
subject.send(nil) mainQueue.schedule(after: mainQueue.now.advanced(by: 2)) {
subject.send(nil)
}
} }
} }
}, },
hide: { hide: {
subject.send(nil) mainQueue.schedule {
subject.send(nil)
}
}, },
observe: { observe: {
subject.eraseToAnyPublisher() subject.eraseToAnyPublisher()
......
...@@ -6,7 +6,6 @@ import SwiftUI ...@@ -6,7 +6,6 @@ import SwiftUI
public final class HUDPresenter { public final class HUDPresenter {
public init() { public init() {
hudManager.observe() hudManager.observe()
.receive(on: DispatchQueue.main)
.sink { [unowned self] model in .sink { [unowned self] model in
if let model = model { if let model = model {
show(model) show(model)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment