diff --git a/Sources/HUDFeature/HUDManager.swift b/Sources/HUDFeature/HUDManager.swift index 0ce430470bb443428c92b5f54a1f1c2970ae6ae4..418cd669b8215e55de03cd61023de24767a4339c 100644 --- a/Sources/HUDFeature/HUDManager.swift +++ b/Sources/HUDFeature/HUDManager.swift @@ -19,23 +19,18 @@ public struct HUDManager { extension HUDManager { public static func live() -> HUDManager { let subject = PassthroughSubject<HUDModel?, Never>() - @Dependency(\.mainQueue) var mainQueue return HUDManager( show: .init { model in - mainQueue.schedule { - let model = model ?? HUDModel(hasDotAnimation: true) - subject.send(model) - if model.isAutoDismissable { - mainQueue.schedule(after: mainQueue.now.advanced(by: 2)) { - subject.send(nil) - } + let model = model ?? HUDModel(hasDotAnimation: true) + subject.send(model) + if model.isAutoDismissable { + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + subject.send(nil) } } }, hide: { - mainQueue.schedule { - subject.send(nil) - } + subject.send(nil) }, observe: { subject.eraseToAnyPublisher() diff --git a/Sources/HUDFeature/HUDPresenter.swift b/Sources/HUDFeature/HUDPresenter.swift index 6f0e1ce178d9f36f35e8f587c8fe682c11d1e431..0bf202d30c1d960b65d2fe42e92be2eb3ad2513d 100644 --- a/Sources/HUDFeature/HUDPresenter.swift +++ b/Sources/HUDFeature/HUDPresenter.swift @@ -6,6 +6,7 @@ import SwiftUI public final class HUDPresenter { public init() { hudManager.observe() + .receive(on: DispatchQueue.main) .sink { [unowned self] model in if let model = model { show(model)