AutorÃa | Ultima modificación | Ver Log |
//
// NetworkMonitor.swift
// twogetskills
//
// Created by Efrain Yanez Recanatini on 6/12/22.
//
import Network
import SwiftUI
// An enum to handle the network status
enum NetworkStatus: String {
case connected
case disconnected
}
class NetworkMonitor: ObservableObject {
private let monitor = NWPathMonitor()
private let queue = DispatchQueue(label: "Monitor")
@Published var status : NetworkStatus = .connected
init() {
monitor.pathUpdateHandler = { [weak self] path in
guard let self = self else { return }
// Monitor runs on a background thread so we need to publish
// on the main thread
DispatchQueue.main.async {
if path.status == .satisfied {
self.status = .connected
} else {
self.status = .disconnected
}
}
}
monitor.start(queue: queue)
}
}