From 9131056f2b6928d4135742b4c56f636762f769ef Mon Sep 17 00:00:00 2001 From: Phil Viso Date: Sat, 4 Jul 2020 10:20:50 -0500 Subject: [PATCH] Added refreshProgressState to SceneModel. Removed RefreshProgressModel from environment --- Multiplatform/Shared/MainApp.swift | 3 --- .../Shared/{Sidebar => }/RefreshProgressModel.swift | 0 Multiplatform/Shared/SceneModel.swift | 9 +++++++++ Multiplatform/Shared/Sidebar/RefreshProgressView.swift | 4 ++-- NetNewsWire.xcodeproj/project.pbxproj | 2 +- 5 files changed, 12 insertions(+), 6 deletions(-) rename Multiplatform/Shared/{Sidebar => }/RefreshProgressModel.swift (100%) diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index c38e40a84..1be5b3720 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -19,7 +19,6 @@ struct MainApp: App { #endif @StateObject private var sceneModel = SceneModel() - @StateObject private var refreshProgresModel = RefreshProgressModel() @StateObject private var defaults = AppDefaults.shared @State private var showSheet = false @@ -29,7 +28,6 @@ struct MainApp: App { SceneNavigationView() .frame(minWidth: 600, idealWidth: 1000, maxWidth: .infinity, minHeight: 600, idealHeight: 700, maxHeight: .infinity) .environmentObject(sceneModel) - .environmentObject(refreshProgresModel) .environmentObject(defaults) .sheet(isPresented: $showSheet, onDismiss: { showSheet = false }) { AddWebFeedView() @@ -155,7 +153,6 @@ struct MainApp: App { WindowGroup { SceneNavigationView() .environmentObject(sceneModel) - .environmentObject(refreshProgresModel) .environmentObject(defaults) .modifier(PreferredColorSchemeModifier(preferredColorScheme: defaults.userInterfaceColorPalette)) } diff --git a/Multiplatform/Shared/Sidebar/RefreshProgressModel.swift b/Multiplatform/Shared/RefreshProgressModel.swift similarity index 100% rename from Multiplatform/Shared/Sidebar/RefreshProgressModel.swift rename to Multiplatform/Shared/RefreshProgressModel.swift diff --git a/Multiplatform/Shared/SceneModel.swift b/Multiplatform/Shared/SceneModel.swift index e199ac11c..99071215f 100644 --- a/Multiplatform/Shared/SceneModel.swift +++ b/Multiplatform/Shared/SceneModel.swift @@ -11,10 +11,19 @@ import Account final class SceneModel: ObservableObject { + @Published var refreshProgressState = RefreshProgressModel.State.none + var sidebarModel: SidebarModel? var timelineModel: TimelineModel? var articleModel: ArticleModel? + private let refreshProgressModel: RefreshProgressModel + + init(refreshProgressModel: RefreshProgressModel = RefreshProgressModel()) { + self.refreshProgressModel = refreshProgressModel + self.refreshProgressModel.$state.assign(to: self.$refreshProgressState) + } + } // MARK: SidebarModelDelegate diff --git a/Multiplatform/Shared/Sidebar/RefreshProgressView.swift b/Multiplatform/Shared/Sidebar/RefreshProgressView.swift index 4e776463e..410713b94 100644 --- a/Multiplatform/Shared/Sidebar/RefreshProgressView.swift +++ b/Multiplatform/Shared/Sidebar/RefreshProgressView.swift @@ -10,10 +10,10 @@ import SwiftUI struct RefreshProgressView: View { - @EnvironmentObject var refreshProgressModel: RefreshProgressModel + @EnvironmentObject var sceneModel: SceneModel @ViewBuilder var body: some View { - switch refreshProgressModel.state { + switch sceneModel.refreshProgressState { case .refreshProgress(let progress): ProgressView(value: progress) .frame(width: progressViewWidth()) diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 323884e32..0ab75b585 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -2791,6 +2791,7 @@ 1776E88D24AC5F8A00E78166 /* AppDefaults.swift */, 51E4995824A873F900B667CB /* ErrorHandler.swift */, 51C0513624A77DF700194D5E /* MainApp.swift */, + FF64D0C424AF53EE0084080A /* RefreshProgressModel.swift */, 51E499D724A912C200B667CB /* SceneModel.swift */, 51E49A0224A91FF600B667CB /* SceneNavigationView.swift */, 51C0513824A77DF800194D5E /* Assets.xcassets */, @@ -2978,7 +2979,6 @@ isa = PBXGroup; children = ( 172952AF24AA287100D65E66 /* CompactSidebarContainerView.swift */, - FF64D0C424AF53EE0084080A /* RefreshProgressModel.swift */, FF64D0E624AF53EE0084080A /* RefreshProgressView.swift */, 51E499FF24A91FC100B667CB /* RegularSidebarContainerView.swift */, 51392D1A24AC19A000BE0D35 /* SidebarExpandedContainers.swift */,