From 313d3df5730d2484c5b171ef8fec6e796a0c5e40 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Thu, 2 Jul 2020 05:46:56 -0500 Subject: [PATCH] Fix timeline so that it works with most recent AppDefaults code --- Multiplatform/Shared/MainApp.swift | 2 ++ Multiplatform/Shared/Timeline/TimelineItemView.swift | 6 ++++-- Multiplatform/Shared/Timeline/TimelineModel.swift | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Multiplatform/Shared/MainApp.swift b/Multiplatform/Shared/MainApp.swift index a6dfa2f3b..634dea81c 100644 --- a/Multiplatform/Shared/MainApp.swift +++ b/Multiplatform/Shared/MainApp.swift @@ -27,6 +27,7 @@ struct MainApp: App { SceneNavigationView() .frame(minWidth: 600, idealWidth: 1000, maxWidth: .infinity, minHeight: 600, idealHeight: 700, maxHeight: .infinity) .environmentObject(sceneModel) + .environmentObject(defaults) .toolbar { ToolbarItem { @@ -144,6 +145,7 @@ struct MainApp: App { WindowGroup { SceneNavigationView() .environmentObject(sceneModel) + .environmentObject(defaults) }.commands { CommandGroup(after: .newItem, addition: { Button("New Feed", action: {}) diff --git a/Multiplatform/Shared/Timeline/TimelineItemView.swift b/Multiplatform/Shared/Timeline/TimelineItemView.swift index fd5529d2b..62c7dfaad 100644 --- a/Multiplatform/Shared/Timeline/TimelineItemView.swift +++ b/Multiplatform/Shared/Timeline/TimelineItemView.swift @@ -10,7 +10,9 @@ import SwiftUI struct TimelineItemView: View { + @EnvironmentObject var defaults: AppDefaults @StateObject var articleIconImageLoader = ArticleIconImageLoader() + var timelineItem: TimelineItem var body: some View { @@ -19,12 +21,12 @@ struct TimelineItemView: View { TimelineItemStatusView(status: timelineItem.status) if let image = articleIconImageLoader.image { IconImageView(iconImage: image) - .frame(width: AppDefaults.timelineIconSize.size.width, height: AppDefaults.timelineIconSize.size.height, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/) + .frame(width: CGFloat(defaults.timelineIconSize), height: CGFloat(defaults.timelineIconSize), alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/) } VStack { Text(verbatim: timelineItem.article.title ?? "N/A") .fontWeight(.semibold) - .lineLimit(AppDefaults.timelineNumberOfLines) + .lineLimit(defaults.timelineNumberOfLines) .frame(maxWidth: .infinity, alignment: .leading) .padding(.trailing, 4) Spacer() diff --git a/Multiplatform/Shared/Timeline/TimelineModel.swift b/Multiplatform/Shared/Timeline/TimelineModel.swift index 6f06fa7ff..d89da96a1 100644 --- a/Multiplatform/Shared/Timeline/TimelineModel.swift +++ b/Multiplatform/Shared/Timeline/TimelineModel.swift @@ -29,7 +29,7 @@ class TimelineModel: ObservableObject { private var articles = [Article]() - private var sortDirection = AppDefaults.timelineSortDirection { + private var sortDirection = AppDefaults.shared.timelineSortDirection { didSet { if sortDirection != oldValue { sortParametersDidChange() @@ -37,7 +37,7 @@ class TimelineModel: ObservableObject { } } - private var groupByFeed = AppDefaults.timelineGroupByFeed { + private var groupByFeed = AppDefaults.shared.timelineGroupByFeed { didSet { if groupByFeed != oldValue { sortParametersDidChange() @@ -111,7 +111,7 @@ private extension TimelineModel { } func replaceArticles(with unsortedArticles: Set
) { - articles = Array(unsortedArticles).sortedByDate(sortDirection, groupByFeed: groupByFeed) + articles = Array(unsortedArticles).sortedByDate(sortDirection ? .orderedDescending : .orderedAscending, groupByFeed: groupByFeed) timelineItems = articles.map { TimelineItem(article: $0) } // TODO: Update unread counts and other item done in didSet on AppKit