fix view
This commit is contained in:
parent
436b4c1256
commit
ba775af7b9
@ -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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user