This commit is contained in:
anlicheng 2025-03-04 00:16:20 +08:00
parent 436b4c1256
commit ba775af7b9
2 changed files with 24 additions and 13 deletions

View File

@ -92,10 +92,8 @@ struct DateNavView: View {
} }
} }
.padding(15) .padding(15)
.frame(height: 600)
.task { .task {
await self.navModel.loadDateCells(userId: self.userId) await self.navModel.loadDateCells(userId: self.userId)
print(UIScreen.main.bounds.height)
} }
} }

View File

@ -56,6 +56,9 @@ final class IndexModel {
// //
var updateDramaGroups: [UpdateDramaGroup] = [] var updateDramaGroups: [UpdateDramaGroup] = []
@ObservationIgnored
private var isLoaded = false
init() { init() {
self.dramas = [] self.dramas = []
self.selectedDate = "" self.selectedDate = ""
@ -63,6 +66,10 @@ final class IndexModel {
@MainActor @MainActor
func loadData(userId: String) async { func loadData(userId: String) async {
guard !isLoaded else {
return
}
let response = await API.getIndexData(userId: userId, as: IndexResponse.self) let response = await API.getIndexData(userId: userId, as: IndexResponse.self)
switch response { switch response {
case .error(let code, let message): case .error(let code, let message):
@ -71,6 +78,7 @@ final class IndexModel {
self.dramas = result.dramas self.dramas = result.dramas
self.updateDramaGroups = result.update_dramas self.updateDramaGroups = result.update_dramas
} }
self.isLoaded = true
} }
@MainActor @MainActor
@ -196,6 +204,7 @@ struct IndexView: View {
} }
case .satisfied: case .satisfied:
IndexMainView() IndexMainView()
.id("indexMainView")
} }
} }
.onAppear { .onAppear {
@ -338,15 +347,8 @@ extension IndexView {
} }
} }
.coordinateSpace(name: "scrollView") .coordinateSpace(name: "scrollView")
.popover(isPresented: $showDateNavPopover) {
DateNavView(selectGroupId: self.$selectGroupId, showDateNavPopover: $showDateNavPopover) { selectedDate in
Task {
await indexModel.loadDateUpdateDramas(userId: self.userId, date: selectedDate)
}
}
}
.refreshable { .refreshable {
guard !self.isPrevLoading else { guard !self.isPrevLoading && !self.showDateNavPopover else {
return return
} }
@ -360,12 +362,23 @@ extension IndexView {
.frame(width: 370) .frame(width: 370)
} }
.ignoresSafeArea(edges: .bottom) .ignoresSafeArea(edges: .bottom)
.popover(isPresented: $showDateNavPopover) {
DateNavView(selectGroupId: self.$selectGroupId, showDateNavPopover: $showDateNavPopover) { selectedDate in
Task {
await indexModel.loadDateUpdateDramas(userId: self.userId, date: selectedDate)
}
}
}
.alert(isPresented: $showPrompt) { .alert(isPresented: $showPrompt) {
Alert(title: Text("提示"), message: Text(self.promptMessage), dismissButton: .default(Text("OK"))) Alert(title: Text("提示"), message: Text(self.promptMessage), dismissButton: .default(Text("OK")))
} }
.task { .onAppear {
await self.indexModel.loadData(userId: self.userId) Task {
print(UIScreen.main.bounds.width) await self.indexModel.loadData(userId: self.userId)
}
withUnsafePointer(to: indexModel) { pointer in
print(pointer)
}
} }
} }
} }