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)
.frame(height: 600)
.task {
await self.navModel.loadDateCells(userId: self.userId)
print(UIScreen.main.bounds.height)
}
}

View File

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