import Network class PathMonitor: ObservableObject { @Published private(set) var status: NWPath.Status private let pathMonitor = NWPathMonitor() private let pathMonitorQueue = DispatchQueue(label: "NWPathMonitor") init(status: NWPath.Status = .unsatisfied, active: Bool = true) { self.status = status if active { enablePathMonitor() } } private func enablePathMonitor() { pathMonitor.pathUpdateHandler = { path in DispatchQueue.main.async { self.status = path.status } } pathMonitor.start(queue: pathMonitorQueue) } }