From 033965f0b4940d46bf5258d26e65f40757245312 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Tue, 17 May 2022 11:32:07 -0700 Subject: [PATCH] remove homeViewModel references where they're no longer needed --- .../Components/FeedCardNavigationLink.swift | 4 ++-- .../Sources/App/Views/LinkItemDetailView.swift | 16 ++++++---------- .../Views/WebReader/WebReaderContainer.swift | 17 +++++++++-------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/Components/FeedCardNavigationLink.swift b/apple/OmnivoreKit/Sources/App/Views/Home/Components/FeedCardNavigationLink.swift index 0ff39e4e4..895216be8 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/Components/FeedCardNavigationLink.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/Components/FeedCardNavigationLink.swift @@ -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("") diff --git a/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift b/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift index 1b5124b36..e25217235 100644 --- a/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift @@ -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() - 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 diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift index 4aa28e430..754440c17 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderContainer.swift @@ -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 {