Files

32 lines
761 B
Swift

//
// NetworkMonitor.swift
// LifeGameApp
//
// Created by Yusuke Hosonuma on 2020/08/15.
//
import SwiftUI
import Network
final class NetworkMonitor: ObservableObject {
@Published var status: NWPath.Status = .satisfied
init() {
NWPathMonitor()
.publisher()
.map(\.status)
.assign(to: &$status)
}
// Note: ✅
// @EnvironmentObject は`wrappedValue` に ObservableObject準拠を要求するため、
// モック側でも完全に同じプロパティを要求されてしまい無駄が多いので一端以下。
// (他に良い方法が見つかれば変更する)
#if DEBUG
init(mockStatus: NWPath.Status) {
status = mockStatus
}
#endif
}