fix index view

This commit is contained in:
anlicheng 2025-04-08 16:27:00 +08:00
parent 5b14d559bf
commit 6dc1c3c6eb

View File

@ -13,9 +13,6 @@ struct IndexMainView: View {
@AppStorage("userId") private var userId: String = Utils.defaultUserId() @AppStorage("userId") private var userId: String = Utils.defaultUserId()
@State var indexModel = IndexModel() @State var indexModel = IndexModel()
@State var isMoreLoading: Bool = false
//
@State var isPrevLoading: Bool = false
// //
@State var showPrompt: Bool = false @State var showPrompt: Bool = false
@ -58,13 +55,20 @@ struct IndexMainView: View {
.background(Color(hex: "#F2F2F2"), ignoresSafeAreaEdges: .top) .background(Color(hex: "#F2F2F2"), ignoresSafeAreaEdges: .top)
ScrollView(.vertical, showsIndicators: false) { ScrollView(.vertical, showsIndicators: false) {
//
RefreshHeader(refreshing: $headerRefreshing, action: { RefreshHeader(refreshing: $headerRefreshing, action: {
print("call me head headerRefreshing") guard !self.showDateNavPopover else {
}) { progress in return
print("progress is: \(progress)") }
return ProgressView() Task {
//
self.headerRefreshing = true
await self.indexModel.loadMoreUpdateDramas(userId: self.userId, mode: .prev)
self.headerRefreshing = false
}
}) { progress in
ProgressView()
} }
// //
@ -78,26 +82,12 @@ struct IndexMainView: View {
} }
} }
// Rectangle() //
// .frame(height: 0)
// .background(GeometryReader { geometry in
// Color.clear.onChange(of: geometry.frame(in: .global).minY) {_, offset in
// let frame = geometry.frame(in: .global)
// let screenBounds = UIScreen.main.bounds
// let contextFrame = geometry.frame(in: .named("indexScrollView"))
//
// if screenBounds.height - frame.minY > 50 && contextFrame.minY > 0 && !isMoreLoading {
// Task {
// self.isMoreLoading = true
// await self.indexModel.loadMoreUpdateDramas(userId: self.userId, mode: .next)
// self.isMoreLoading = false
// }
// }
// }
// })
RefreshFooter(refreshing: $footerRefreshing, action: { RefreshFooter(refreshing: $footerRefreshing, action: {
print("call me here $footerRefreshing") guard !self.showDateNavPopover else {
return
}
Task { Task {
self.footerRefreshing = true self.footerRefreshing = true
await self.indexModel.loadMoreUpdateDramas(userId: self.userId, mode: .next) await self.indexModel.loadMoreUpdateDramas(userId: self.userId, mode: .next)
@ -108,24 +98,10 @@ struct IndexMainView: View {
} }
.noMore(noMore) .noMore(noMore)
.preload(offset: 50) .preload(offset: 50)
if self.isMoreLoading {
ProgressView()
}
} }
.enableRefresh() .enableRefresh()
.frame(width: 370) .frame(width: 370)
.coordinateSpace(name: "indexScrollView") .coordinateSpace(name: "indexScrollView")
// .refreshable {
// guard !self.isPrevLoading && !self.showDateNavPopover else {
// return
// }
//
// //
// self.isPrevLoading = true
// await self.indexModel.loadMoreUpdateDramas(userId: self.userId, mode: .prev)
// self.isPrevLoading = false
// }
.overlay(alignment: .topTrailing) { .overlay(alignment: .topTrailing) {
HStack(alignment: .center) { HStack(alignment: .center) {
NavigationLink { NavigationLink {