add a GridCardNavigationLink view

This commit is contained in:
Satindar Dhillon
2022-03-01 09:04:02 -08:00
parent f6b0eb667d
commit 48521c2c12
2 changed files with 27 additions and 1 deletions

View File

@ -28,3 +28,29 @@ struct FeedCardNavigationLink: View {
FeedCard(item: item)
}
}
struct GridCardNavigationLink: View {
@EnvironmentObject var dataService: DataService
let item: FeedItem
let searchQuery: String
@Binding var selectedLinkItem: FeedItem?
@ObservedObject var viewModel: HomeFeedViewModel
var body: some View {
NavigationLink(
destination: LinkItemDetailView(viewModel: LinkItemDetailViewModel(item: item)),
tag: item,
selection: $selectedLinkItem
) {
EmptyView()
}
.opacity(0)
.buttonStyle(PlainButtonStyle())
.onAppear {
viewModel.itemAppeared(item: item, searchQuery: searchQuery, dataService: dataService)
}
FeedCard(item: item)
}
}

View File

@ -245,7 +245,7 @@ import Views
LazyVGrid(columns: [GridItem(.flexible()), GridItem(.flexible())], spacing: 20) {
ForEach(viewModel.items) { item in
let link = ZStack {
FeedCardNavigationLink(
GridCardNavigationLink(
item: item,
searchQuery: searchQuery,
selectedLinkItem: $selectedLinkItem,