move onAppear hook to grid item card

This commit is contained in:
Satindar Dhillon
2022-03-06 20:08:28 -08:00
parent 1ca25c87bd
commit 35bd189e2e
2 changed files with 8 additions and 3 deletions

View File

@ -53,9 +53,9 @@ struct GridCardNavigationLink: View {
) {
EmptyView()
}
.onAppear {
viewModel.itemAppeared(item: item, searchQuery: searchQuery, dataService: dataService)
}
// .onAppear {
// viewModel.itemAppeared(item: item, searchQuery: searchQuery, dataService: dataService)
// }
GridCard(item: item, isContextMenuOpen: $isContextMenuOpen, actionHandler: actionHandler, tapAction: {
withAnimation {
scale = 0.95
@ -65,6 +65,9 @@ struct GridCardNavigationLink: View {
}
}
})
.onAppear {
viewModel.itemAppeared(item: item, searchQuery: searchQuery, dataService: dataService)
}
}
.scaleEffect(scale)
}

View File

@ -27,8 +27,10 @@ final class HomeFeedViewModel: ObservableObject {
let itemIndex = items.firstIndex(where: { $0.id == item.id })
let thresholdIndex = items.index(items.endIndex, offsetBy: -5)
print("itemIndex", itemIndex)
// Check if user has scrolled to the last five items in the list
if let itemIndex = itemIndex, itemIndex > thresholdIndex, items.count < thresholdIndex + 10 {
print("loading more items")
loadItems(dataService: dataService, searchQuery: searchQuery, isRefresh: false)
}
}