remove homeViewModel references where they're no longer needed

This commit is contained in:
Satindar Dhillon 2022-05-17 11:32:07 -07:00
parent d96a3e1fc1
commit 033965f0b4
3 changed files with 17 additions and 20 deletions

View file

@ -11,7 +11,7 @@ struct FeedCardNavigationLink: View {
@ObservedObject var viewModel: HomeFeedViewModel
var body: some View {
let destination = LinkItemDetailView(viewModel: LinkItemDetailViewModel(item: item, homeFeedViewModel: viewModel))
let destination = LinkItemDetailView(viewModel: LinkItemDetailViewModel(item: item))
#if os(iOS)
let modifiedDestination = destination
.navigationTitle("")
@ -50,7 +50,7 @@ struct GridCardNavigationLink: View {
@ObservedObject var viewModel: HomeFeedViewModel
var body: some View {
let destination = LinkItemDetailView(viewModel: LinkItemDetailViewModel(item: item, homeFeedViewModel: viewModel))
let destination = LinkItemDetailView(viewModel: LinkItemDetailViewModel(item: item))
#if os(iOS)
let modifiedDestination = destination
.navigationTitle("")

View file

@ -10,27 +10,23 @@ enum PDFProvider {
}
@MainActor final class LinkItemDetailViewModel: ObservableObject {
let homeFeedViewModel: HomeFeedViewModel
@Published var item: LinkedItem
@Published var webAppWrapperViewModel: WebAppWrapperViewModel?
var subscriptions = Set<AnyCancellable>()
init(item: LinkedItem, homeFeedViewModel: HomeFeedViewModel) {
init(item: LinkedItem) {
self.item = item
self.homeFeedViewModel = homeFeedViewModel
}
func handleArchiveAction(dataService: DataService) {
homeFeedViewModel.setLinkArchived(
dataService: dataService,
objectID: item.objectID,
archived: !item.isArchived
)
dataService.archiveLink(objectID: item.objectID, archived: !item.isArchived)
Snackbar.show(message: !item.isArchived ? "Link archived" : "Link moved to Inbox")
}
func handleDeleteAction(dataService: DataService) {
homeFeedViewModel.removeLink(dataService: dataService, objectID: item.objectID)
Snackbar.show(message: "Link removed")
dataService.removeLink(objectID: item.objectID)
}
func updateItemReadStatus(dataService: DataService) {
@ -151,7 +147,7 @@ struct LinkItemDetailView: View {
viewModel.trackReadEvent()
}
} else {
WebReaderContainerView(item: viewModel.item, homeFeedViewModel: viewModel.homeFeedViewModel)
WebReaderContainerView(item: viewModel.item)
.navigationBarHidden(hideNavBar)
.task {
hideNavBar = true

View file

@ -7,9 +7,9 @@ import WebKit
#if os(iOS)
struct WebReaderContainerView: View {
let item: LinkedItem
let homeFeedViewModel: HomeFeedViewModel
@State private var showFontSizePopover = false
@State private var showLabelsModal = false
@State var showHighlightAnnotationModal = false
@State var safariWebLink: SafariWebLink?
@State private var navBarVisibilityRatio = 1.0
@ -87,16 +87,13 @@ import WebKit
content: {
Group {
Button(
action: { homeFeedViewModel.itemUnderLabelEdit = item },
action: { showLabelsModal = true },
label: { Label("Edit Labels", systemImage: "tag") }
)
Button(
action: {
homeFeedViewModel.setLinkArchived(
dataService: dataService,
objectID: item.objectID,
archived: !item.isArchived
)
dataService.archiveLink(objectID: item.objectID, archived: !item.isArchived)
Snackbar.show(message: !item.isArchived ? "Link archived" : "Link moved to Inbox")
},
label: {
Label(
@ -130,10 +127,14 @@ import WebKit
}
.alert("Are you sure?", isPresented: $showDeleteConfirmation) {
Button("Remove Link", role: .destructive) {
homeFeedViewModel.removeLink(dataService: dataService, objectID: item.objectID)
Snackbar.show(message: "Link removed")
dataService.removeLink(objectID: item.objectID)
}
Button("Cancel", role: .cancel, action: {})
}
.sheet(isPresented: $showLabelsModal) {
ApplyLabelsView(mode: .item(item), onSave: { _ in showLabelsModal = false })
}
}
var body: some View {