Fix issues with search view hierarchy

This commit is contained in:
Jackson Harper
2024-03-08 13:20:22 +08:00
parent 5383e8133b
commit 2ce4fa3f48
4 changed files with 16 additions and 10 deletions

View File

@ -493,7 +493,8 @@ struct AnimatingCellHeight: AnimatableModifier {
options: PresentationLinkTransition.SlideTransitionOptions(edge: .trailing,
options:
PresentationLinkTransition.Options(
modalPresentationCapturesStatusBarAppearance: true
modalPresentationCapturesStatusBarAppearance: true,
preferredPresentationBackgroundColor: ThemeManager.currentBgColor
))),
isPresented: $viewModel.presentWebContainer,
destination: {

View File

@ -73,7 +73,12 @@ enum LoadingBarStyle {
self.linkIsActive = true
}
}
func pushLinkedRequest(request: LinkRequest) {
self.linkRequest = request
self.presentWebContainer = true
}
private var filterState: FetcherFilterState? {
if let appliedFilter = appliedFilter {
return FetcherFilterState(

View File

@ -101,7 +101,8 @@
Spacer()
Image(systemName: "chevron.right")
}.onTapGesture {
viewModel.linkRequest = LinkRequest(id: UUID(), serverID: item.id)
homeFeedViewModel.pushLinkedRequest(request: LinkRequest(id: UUID(), serverID: item.id))
dismiss()
}
}
}

View File

@ -10,6 +10,11 @@ import Views
@Published var errorMessage: String?
func loadItem(dataService: DataService, username: String, requestID: String) async {
if let cached = Models.LibraryItem.lookup(byID: requestID, inContext: dataService.viewContext) {
item = cached
return
}
guard let objectID = try? await dataService.loadItemContentUsingRequestID(username: username,
requestID: requestID)
else {
@ -57,8 +62,6 @@ public struct WebReaderLoadingContainer: View {
PDFWrapperView(pdfURL: pdfURL)
}
#endif
} else if item.state == "CONTENT_NOT_FETCHED" {
ProgressView()
} else {
WebReaderContainerView(item: item)
#if os(iOS)
@ -72,11 +75,7 @@ public struct WebReaderLoadingContainer: View {
} else {
ProgressView()
.task {
if let username = dataService.currentViewer?.username {
await viewModel.loadItem(dataService: dataService, username: username, requestID: requestID)
} else {
viewModel.errorMessage = "You are not logged in."
}
await viewModel.loadItem(dataService: dataService, username: "me", requestID: requestID)
}
}
}