[CHANGE] Fetch news when NewsView appears

This commit is contained in:
Fabian Thies
2022-12-12 19:16:36 +01:00
parent 4a3343fe61
commit 294ba12391
2 changed files with 28 additions and 0 deletions

View File

@@ -98,3 +98,11 @@ extension URL: Identifiable {
// NewsItemView() // 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
}
}

View File

@@ -44,6 +44,26 @@ struct NewsView: View {
.navigationTitle("News") .navigationTitle("News")
.sheet(item: self.$activeExternalUrl) { url in .sheet(item: self.$activeExternalUrl) { url in
SafariView(url: url) 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)
}
} }
} }
} }