diff --git a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderLoadingContainer.swift b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderLoadingContainer.swift index 49f3665f3..86c101160 100644 --- a/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderLoadingContainer.swift +++ b/apple/OmnivoreKit/Sources/App/Views/WebReader/WebReaderLoadingContainer.swift @@ -9,8 +9,12 @@ import Views @Published var item: LinkedItem? @Published var errorMessage: String? - func loadItem(dataService: DataService, requestID: String) async { - guard let objectID = try? await dataService.loadItemContentUsingRequestID(requestID: requestID) else { return } + func loadItem(dataService: DataService, username: String, requestID: String) async { + guard let objectID = try? await dataService.loadItemContentUsingRequestID(username: username, + requestID: requestID) + else { + return + } item = dataService.viewContext.object(with: objectID) as? LinkedItem } @@ -60,7 +64,13 @@ public struct WebReaderLoadingContainer: View { Text(errorMessage) } else { ProgressView() - .task { await viewModel.loadItem(dataService: dataService, requestID: requestID) } + .task { + if let username = dataService.currentViewer?.username { + await viewModel.loadItem(dataService: dataService, username: username, requestID: requestID) + } else { + viewModel.errorMessage = "You are not logged in." + } + } } } } diff --git a/apple/OmnivoreKit/Sources/Services/DataService/Public/LinkedItemLoading.swift b/apple/OmnivoreKit/Sources/Services/DataService/Public/LinkedItemLoading.swift index 66dc75968..f1e7b517d 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/Public/LinkedItemLoading.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/Public/LinkedItemLoading.swift @@ -84,11 +84,7 @@ public extension DataService { return persistedItemID } - func loadItemContentUsingRequestID(requestID: String) async throws -> NSManagedObjectID? { - let username: String? = await username() - guard let username = username else { throw BasicError.message(messageText: "unauthorized user") } - - // If the page was locally created, make sure they are synced before we pull content + func loadItemContentUsingRequestID(username: String, requestID: String) async throws -> NSManagedObjectID? { await syncUnsyncedArticleContent(itemID: requestID) let articleContent = try await loadArticleContentWithRetries(itemID: requestID, username: username, requestCount: 0)