From b7a995d37dfe506a715d529e353b42b1e757e68d Mon Sep 17 00:00:00 2001 From: opficdev Date: Sun, 29 Mar 2026 20:26:52 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=EC=98=B5=EC=85=94=EB=84=90=20?= =?UTF-8?q?=ED=8F=AC=ED=95=A8=ED=95=98=EC=A7=80=EB=A7=8C,=20=EB=B0=A9?= =?UTF-8?q?=EC=B6=9C=EC=9D=84=20compactMap=EC=9C=BC=EB=A1=9C=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EC=97=AC=20=EC=B5=9C=EC=B4=88=20Bool=20?= =?UTF-8?q?=EA=B0=92=EC=9D=84=20=EB=B0=A9=EC=B6=9C=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8F=84=EB=A1=9D=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DevLog/Infra/Service/NWPathConnectivityProvider.swift | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/DevLog/Infra/Service/NWPathConnectivityProvider.swift b/DevLog/Infra/Service/NWPathConnectivityProvider.swift index 4ecda776..07cd8541 100644 --- a/DevLog/Infra/Service/NWPathConnectivityProvider.swift +++ b/DevLog/Infra/Service/NWPathConnectivityProvider.swift @@ -11,12 +11,9 @@ import Combine final class NWPathConnectivityProvider { private let networkPathMonitor = NWPathMonitor() private let monitoringQueue = DispatchQueue(label: "NWPathConnectivityProviderQueue") - private let isConnectedSubject = CurrentValueSubject(false) + private let isConnectedSubject = CurrentValueSubject(nil) init() { - let initialStatus = networkPathMonitor.currentPath.status == .satisfied - isConnectedSubject.send(initialStatus) - networkPathMonitor.pathUpdateHandler = { [weak self] path in let connected = (path.status == .satisfied) self?.isConnectedSubject.send(connected) @@ -30,6 +27,8 @@ final class NWPathConnectivityProvider { } func observeNetworkConnectivity() -> AnyPublisher { - isConnectedSubject.eraseToAnyPublisher() + isConnectedSubject + .compactMap { $0 } + .eraseToAnyPublisher() } } From 647b60f55aeea9aa569c8447dc9a2837eb8937b1 Mon Sep 17 00:00:00 2001 From: opficdev Date: Sun, 29 Mar 2026 20:53:08 +0900 Subject: [PATCH 2/2] =?UTF-8?q?style:=20=EC=9C=A0=EC=A6=88=EC=BC=80?= =?UTF-8?q?=EC=9D=B4=EC=8A=A4=20=EB=8B=A8=EC=97=90=EC=84=9C=20removeDuplic?= =?UTF-8?q?ates()=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Connectivity/ObserveNetworkConnectivityUseCaseImpl.swift | 2 ++ DevLog/Presentation/ViewModel/HomeViewModel.swift | 1 - DevLog/Presentation/ViewModel/ProfileViewModel.swift | 1 - DevLog/Presentation/ViewModel/RootViewModel.swift | 1 - DevLog/Presentation/ViewModel/SettingViewModel.swift | 1 - 5 files changed, 2 insertions(+), 4 deletions(-) diff --git a/DevLog/Domain/UseCase/Connectivity/ObserveNetworkConnectivityUseCaseImpl.swift b/DevLog/Domain/UseCase/Connectivity/ObserveNetworkConnectivityUseCaseImpl.swift index e32cd674..81bdff36 100644 --- a/DevLog/Domain/UseCase/Connectivity/ObserveNetworkConnectivityUseCaseImpl.swift +++ b/DevLog/Domain/UseCase/Connectivity/ObserveNetworkConnectivityUseCaseImpl.swift @@ -16,5 +16,7 @@ final class ObserveNetworkConnectivityUseCaseImpl: ObserveNetworkConnectivityUse func observe() -> AnyPublisher { repository.observeNetworkConnectivity() + .removeDuplicates() + .eraseToAnyPublisher() } } diff --git a/DevLog/Presentation/ViewModel/HomeViewModel.swift b/DevLog/Presentation/ViewModel/HomeViewModel.swift index fb8974b4..809c8745 100644 --- a/DevLog/Presentation/ViewModel/HomeViewModel.swift +++ b/DevLog/Presentation/ViewModel/HomeViewModel.swift @@ -446,7 +446,6 @@ private extension HomeViewModel { func setupNetworkObserving() { networkConnectivityUseCase.observe() - .removeDuplicates() .receive(on: DispatchQueue.main) .sink { [weak self] isConnected in self?.send(.networkStatusChanged(isConnected)) diff --git a/DevLog/Presentation/ViewModel/ProfileViewModel.swift b/DevLog/Presentation/ViewModel/ProfileViewModel.swift index 1844e36f..aaa89eaa 100644 --- a/DevLog/Presentation/ViewModel/ProfileViewModel.swift +++ b/DevLog/Presentation/ViewModel/ProfileViewModel.swift @@ -250,7 +250,6 @@ final class ProfileViewModel: Store { extension ProfileViewModel { private func setupNetworkObserving() { networkConnectivityUseCase.observe() - .removeDuplicates() .receive(on: DispatchQueue.main) .sink { [weak self] isConnected in self?.send(.networkStatusChanged(isConnected)) diff --git a/DevLog/Presentation/ViewModel/RootViewModel.swift b/DevLog/Presentation/ViewModel/RootViewModel.swift index b8cdd9e9..d4f47503 100644 --- a/DevLog/Presentation/ViewModel/RootViewModel.swift +++ b/DevLog/Presentation/ViewModel/RootViewModel.swift @@ -99,7 +99,6 @@ private extension RootViewModel { func setupNetworkObserving() { networkConnectivityUseCase.observe() - .removeDuplicates() .receive(on: DispatchQueue.main) .sink { [weak self] isConnected in self?.send(.networkStatusChanged(isConnected)) diff --git a/DevLog/Presentation/ViewModel/SettingViewModel.swift b/DevLog/Presentation/ViewModel/SettingViewModel.swift index 4ac61adc..902118ae 100644 --- a/DevLog/Presentation/ViewModel/SettingViewModel.swift +++ b/DevLog/Presentation/ViewModel/SettingViewModel.swift @@ -174,7 +174,6 @@ private extension SettingViewModel { func setupNetworkObserving() { networkConnectivityUseCase.observe() - .removeDuplicates() .receive(on: DispatchQueue.main) .sink { [weak self] isConnected in self?.send(.networkStatusChanged(isConnected))