diff --git a/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/ViewModel/NewsViewModel.swift b/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/ViewModel/NewsViewModel.swift index 3d556f9e..26c08284 100644 --- a/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/ViewModel/NewsViewModel.swift +++ b/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/ViewModel/NewsViewModel.swift @@ -10,6 +10,7 @@ import UIComponentsLibrary class NewsViewModel { var options: Options = .home var status: APIStatus = .idle + var selectedNews: FeedDB? enum Options: Equatable { case home diff --git a/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/Views/NewsView.swift b/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/Views/NewsView.swift index 5c5d9f97..300be925 100644 --- a/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/Views/NewsView.swift +++ b/MacMagazine/Features/NewsLibrary/Sources/NewsLibrary/Views/NewsView.swift @@ -20,6 +20,7 @@ public struct NewsView: View { @Binding var scrollPosition: ScrollPosition @State private var search: String = "" + @State private var readingNews = false @Query private var news: [FeedDB] @@ -59,6 +60,9 @@ public struct NewsView: View { sessionState.hasFetchedFeed = true } } + .navigationDestination(isPresented: $readingNews) { + MMWebView(url: viewModel.selectedNews?.link) + } } } extension NewsView { @@ -95,6 +99,9 @@ extension NewsView { screen: nil, style: category.style )) { + viewModel.selectedNews = news[index] + readingNews.toggle() + analytics.track(.buttonTap( buttonId: AnalyticsConstants.ButtonID.newsStarted(postId: Int(news[index].postId) ?? 0).id, screen: AnalyticsConstants.Screen.news.name diff --git a/MacMagazine/Features/PodcastLibrary/Tests/PodcastTests/PodcastViewModelTests.swift b/MacMagazine/Features/PodcastLibrary/Tests/PodcastTests/PodcastViewModelTests.swift index 9fec6e91..cf2be2f8 100644 --- a/MacMagazine/Features/PodcastLibrary/Tests/PodcastTests/PodcastViewModelTests.swift +++ b/MacMagazine/Features/PodcastLibrary/Tests/PodcastTests/PodcastViewModelTests.swift @@ -358,4 +358,3 @@ private func createMockNetwork() -> [NetworkMockData] { ) ] } -