diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index d58a25751..2ac3f1505 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -18,6 +18,7 @@ struct MainApp: App { @UIApplicationDelegateAdaptor(AppDelegate.self) private var delegate #endif + @StateObject private var refreshProgress = RefreshProgressModel() @StateObject private var defaults = AppDefaults.shared @SceneBuilder var body: some Scene { @@ -26,6 +27,7 @@ struct MainApp: App { SceneNavigationView() .frame(minWidth: 600, idealWidth: 1000, maxWidth: .infinity, minHeight: 600, idealHeight: 700, maxHeight: .infinity) .environmentObject(defaults) + .environmentObject(refreshProgress) } .windowToolbarStyle(UnifiedWindowToolbarStyle()) .commands { @@ -85,6 +87,7 @@ struct MainApp: App { WindowGroup { SceneNavigationView() .environmentObject(defaults) + .environmentObject(refreshProgress) .modifier(PreferredColorSchemeModifier(preferredColorScheme: defaults.userInterfaceColorPalette)) } .commands { diff --git a/Multiplatform/Shared/SceneModel.swift b/Multiplatform/Shared/SceneModel.swift index 8833e2148..daa40575b 100644 --- a/Multiplatform/Shared/SceneModel.swift +++ b/Multiplatform/Shared/SceneModel.swift @@ -14,8 +14,6 @@ import RSCore final class SceneModel: ObservableObject { - @Published var refreshProgressState = RefreshProgressModel.State.none - @Published var markAllAsReadButtonState: Bool? @Published var nextUnreadButtonState: Bool? @Published var readButtonState: Bool? @@ -43,9 +41,6 @@ final class SceneModel: ObservableObject { func startup() { sidebarModel.delegate = self timelineModel.delegate = self - - self.refreshProgressModel = RefreshProgressModel() - self.refreshProgressModel!.$state.assign(to: self.$refreshProgressState) self.articleIconSchemeHandler = ArticleIconSchemeHandler(sceneModel: self) self.webViewProvider = WebViewProvider(articleIconSchemeHandler: self.articleIconSchemeHandler!) diff --git a/Multiplatform/Shared/Sidebar/RefreshProgressView.swift b/Multiplatform/Shared/Sidebar/RefreshProgressView.swift index 410713b94..28da4c25d 100644 --- a/Multiplatform/Shared/Sidebar/RefreshProgressView.swift +++ b/Multiplatform/Shared/Sidebar/RefreshProgressView.swift @@ -10,10 +10,10 @@ import SwiftUI struct RefreshProgressView: View { - @EnvironmentObject var sceneModel: SceneModel - + @EnvironmentObject private var refreshProgress: RefreshProgressModel + @ViewBuilder var body: some View { - switch sceneModel.refreshProgressState { + switch refreshProgress.refreshProgressState { case .refreshProgress(let progress): ProgressView(value: progress) .frame(width: progressViewWidth()) @@ -30,12 +30,10 @@ struct RefreshProgressView: View { // MARK - private func progressViewWidth() -> CGFloat { - #if os(iOS) - return 100.0 - #endif - #if os(macOS) return 40.0 + #else + return 100.0 #endif } diff --git a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift index 0c1236d28..ebaedb057 100644 --- a/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift +++ b/Multiplatform/Shared/Sidebar/SidebarToolbarModifier.swift @@ -10,8 +10,8 @@ import SwiftUI struct SidebarToolbarModifier: ViewModifier { - @EnvironmentObject private var sidebarModel: SidebarModel @EnvironmentObject private var defaults: AppDefaults + @EnvironmentObject private var sidebarModel: SidebarModel @StateObject private var viewModel = SidebarToolbarModel() @ViewBuilder func body(content: Content) -> some View {