diff --git a/AltStore/Views/News/NewsItemView.swift b/AltStore/Views/News/NewsItemView.swift index ab1ec353..06251319 100644 --- a/AltStore/Views/News/NewsItemView.swift +++ b/AltStore/Views/News/NewsItemView.swift @@ -98,3 +98,11 @@ extension URL: Identifiable { // NewsItemView() // } //} + + +extension NewsItemView: Equatable { + /// Prevent re-rendering of the view if the parameters didn't change + static func == (lhs: NewsItemView, rhs: NewsItemView) -> Bool { + lhs.newsItem.identifier == rhs.newsItem.identifier + } +} diff --git a/AltStore/Views/News/NewsView.swift b/AltStore/Views/News/NewsView.swift index 39ec6f35..005a971a 100644 --- a/AltStore/Views/News/NewsView.swift +++ b/AltStore/Views/News/NewsView.swift @@ -44,6 +44,26 @@ struct NewsView: View { .navigationTitle("News") .sheet(item: self.$activeExternalUrl) { url in SafariView(url: url) + .ignoresSafeArea() + } + .onAppear(perform: fetchNews) + } + + + func fetchNews() { + AppManager.shared.fetchSources { result in + do { + do { + let (_, context) = try result.get() + try context.save() + } catch let error as AppManager.FetchSourcesError { + try error.managedObjectContext?.save() + throw error + } + } catch { + print(error) + NotificationManager.shared.reportError(error: error) + } } } }