// // ProgressHUDState.swift // fiveConstant // // Created by 李建 on 2023/1/18. // import Foundation import AlertToast import SwiftUI class ProgressState: ObservableObject { static let manager = ProgressState() @Published var isNeedLogin: Bool = false @Published var showTabar: Bool = true } class HUD: ObservableObject { static let instance = HUD() @Published var isPresendted: Bool = false { didSet { startDispatchTime() } } var type: AlertToast.AlertType = .regular var displayMode: AlertToast.DisplayMode = .alert var title: String = "" private var isAnimating = false public static func show(title: String) { instance.title = title instance.type = .regular instance.isPresendted = true } public static func loading() { instance.type = .loading instance.isPresendted = true } public static func hide() { instance.isPresendted = false } private func startDispatchTime() { if isAnimating { return } isAnimating = true DispatchQueue.main.asyncAfter(deadline: .now() + 2) { withAnimation { self.isPresendted = false self.isAnimating = false } } } }