diff --git a/apple/OmnivoreKit/Sources/App/PDFSupport/PDFViewerViewModel.swift b/apple/OmnivoreKit/Sources/App/PDFSupport/PDFViewerViewModel.swift index 9512dc7d0..7d1048eef 100644 --- a/apple/OmnivoreKit/Sources/App/PDFSupport/PDFViewerViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/PDFSupport/PDFViewerViewModel.swift @@ -154,8 +154,8 @@ public final class PDFViewerViewModel: ObservableObject { let baseURL = services.dataService.appEnvironment.serverBaseURL var components = URLComponents(url: baseURL, resolvingAgainstBaseURL: false) - if let viewer = services.dataService.currentViewer?.username { - components?.path = "/\(viewer)/\(feedItem.slug)/highlights/\(shortId)" + if let username = services.dataService.currentViewer?.username { + components?.path = "/\(username)/\(feedItem.slug)/highlights/\(shortId)" } else { return nil } diff --git a/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift b/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift index 4d677e53f..a3de5f6a8 100644 --- a/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/LinkItemDetailView.swift @@ -56,7 +56,7 @@ enum PDFProvider { if let viewer = viewer { createWebAppWrapperViewModel( - username: viewer.username ?? "", + username: viewer.unwrappedUsername, dataService: dataService, rawAuthCookie: rawAuthCookie ) diff --git a/apple/OmnivoreKit/Sources/App/Views/Profile/ProfileView.swift b/apple/OmnivoreKit/Sources/App/Views/Profile/ProfileView.swift index 84dd050e9..5727d96d2 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Profile/ProfileView.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Profile/ProfileView.swift @@ -21,8 +21,8 @@ import Views guard let viewer = try? await dataService.fetchViewer() else { return } profileCardData = ProfileCardData( - name: viewer.name ?? "", - username: viewer.username ?? "", + name: viewer.unwrappedName, + username: viewer.unwrappedUsername, imageURL: viewer.profileImageURL.flatMap { URL(string: $0) } ) } diff --git a/apple/OmnivoreKit/Sources/Models/DataModels/UserProfile.swift b/apple/OmnivoreKit/Sources/Models/DataModels/UserProfile.swift index 85388588b..2c478a27e 100644 --- a/apple/OmnivoreKit/Sources/Models/DataModels/UserProfile.swift +++ b/apple/OmnivoreKit/Sources/Models/DataModels/UserProfile.swift @@ -44,3 +44,13 @@ public extension UserProfile { return nil } } + +public extension Viewer { + var unwrappedUsername: String { + username ?? "" + } + + var unwrappedName: String { + name ?? "" + } +} diff --git a/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift b/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift index a3bfe05d2..57287283b 100644 --- a/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift +++ b/apple/OmnivoreKit/Sources/Services/DataService/DataService.swift @@ -30,6 +30,7 @@ public final class DataService: ObservableObject { public var currentViewer: Viewer? { let fetchRequest: NSFetchRequest = Viewer.fetchRequest() + fetchRequest.fetchLimit = 1 // we should only have one viewer saved return try? persistentContainer.viewContext.fetch(fetchRequest).first }