diff --git a/VDS/Classes/ModelHandlerPublisher.swift b/VDS/Classes/ModelHandlerPublisher.swift index c6bec205..8ea20a35 100644 --- a/VDS/Classes/ModelHandlerPublisher.swift +++ b/VDS/Classes/ModelHandlerPublisher.swift @@ -45,10 +45,12 @@ extension Publishers { private func subscribe() { guard let publisher = modelHandler?.modelPublisher else { return } - publisher.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in - guard let self else { return } - _ = self.subscriber?.receive(viewModel) - }.store(in: &subscribers) + publisher + .debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main) + .sink { [weak self] viewModel in + _ = self?.subscriber?.receive(viewModel) + } + .store(in: &subscribers) } } } @@ -59,8 +61,10 @@ extension ModelHandlerable { } public func createBinding(with subject: CurrentValueSubject, storeIn subscriptions: inout Set) { - handlerPublisher().sink { (value) in - subject.send(value) - }.store(in: &subscriptions) + handlerPublisher() + .sink { (value) in + subject.send(value) + } + .store(in: &subscriptions) } } diff --git a/VDS/Protocols/ModelHandlerable.swift b/VDS/Protocols/ModelHandlerable.swift index 24d0c543..5fff4375 100644 --- a/VDS/Protocols/ModelHandlerable.swift +++ b/VDS/Protocols/ModelHandlerable.swift @@ -30,15 +30,17 @@ extension ModelHandlerable { } } - public func setupUpdateView() { - modelPublisher.filter { [weak self] viewModel in - guard let self else { return false} - return self.shouldUpdateView(viewModel: viewModel) - - }.debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main).sink { [weak self] viewModel in - guard let self else { return } - self.updateView(viewModel: viewModel) - - }.store(in: &subscribers) + public func setupUpdateView() { + modelPublisher + .filter { [weak self] viewModel in + return self?.shouldUpdateView(viewModel: viewModel) ?? false + + } + .debounce(for: .seconds(Constants.ModelStateDebounce), scheduler: RunLoop.main) + .sink { [weak self] viewModel in + self?.updateView(viewModel: viewModel) + + } + .store(in: &subscribers) } }