Separated refresh progress model from SceneModel again

This commit is contained in:
Maurice Parker 2020-07-15 12:56:19 -05:00
parent 6e60156f0e
commit c8077ad214
4 changed files with 9 additions and 13 deletions

View File

@ -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 {

View File

@ -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!)

View File

@ -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
}

View File

@ -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 {