This commit is contained in:
anlicheng 2025-02-25 13:58:29 +08:00
parent ba79ba08cf
commit 5f1533c019
2 changed files with 17 additions and 20 deletions

View File

@ -40,20 +40,17 @@ final class DateNavModel {
self.dateModels = await getDateModelData(userId: userId) self.dateModels = await getDateModelData(userId: userId)
} }
//
private func getDateModelData(userId: String) async -> [DateModel] { private func getDateModelData(userId: String) async -> [DateModel] {
let models = await DataCache.shared.getDateModelCache() let models = await DataCache.shared.getDateModelCache()
if models.count > 0 { if models.count > 0 {
return models return models
} else { } else {
let response = await API.getDateIndex(userId: userId, as: [DateModel].self) let response = await API.getDateIndex(userId: userId, as: [DateModel].self)
print(response)
switch response { switch response {
case .error(let code, let message): case .error(let code, let message):
print(code)
print(message)
return [] return []
case .result(let models): case .result(let models):
print(models)
await DataCache.shared.setDateModelCache(models) await DataCache.shared.setDateModelCache(models)
return models return models
} }
@ -64,7 +61,6 @@ final class DateNavModel {
struct DateNavView: View { struct DateNavView: View {
@AppStorage("userId") private var userId: String = Utils.defaultUserId() @AppStorage("userId") private var userId: String = Utils.defaultUserId()
@State var navModel = DateNavModel() @State var navModel = DateNavModel()
@Binding var selectGroupId: String @Binding var selectGroupId: String
@ -98,9 +94,6 @@ struct DateNavView: View {
.task { .task {
await self.navModel.loadDateCells(userId: self.userId) await self.navModel.loadDateCells(userId: self.userId)
} }
.onAppear {
print("group_id is: \(selectGroupId)")
}
} }
} }

View File

@ -82,8 +82,7 @@ final class IndexModel {
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):
print(code) print("index load data get error_code: \(code), message: \(message)")
print(message)
case .result(let result): case .result(let result):
self.dramas = result.dramas self.dramas = result.dramas
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: result.update_dramas) self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: result.update_dramas)
@ -93,21 +92,26 @@ final class IndexModel {
@MainActor @MainActor
func loadMoreUpdateDramas(userId: String, mode: API.LoadMode) async { func loadMoreUpdateDramas(userId: String, mode: API.LoadMode) async {
let id: Int = 8030 // id
// TODO id
switch mode { switch mode {
case .prev: case .prev:
// id // id
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: id, as: [UpdateDramaGroup].self) if let firstGroup = self.updateDramaGroups.first(where: { $0.items.count > 0}),
if case let .result(groups) = response { let firstItem = firstGroup.items.first {
self.updateDramaGroups = preappendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups) let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: firstItem.id, as: [UpdateDramaGroup].self)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups) if case let .result(groups) = response {
self.updateDramaGroups = preappendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups)
}
} }
case .next: case .next:
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: id, as: [UpdateDramaGroup].self) if let lastGroup = self.updateDramaGroups.last(where: {$0.items.count > 0}),
if case let .result(groups) = response { let lastItem = lastGroup.items.last {
self.updateDramaGroups = appendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups) let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: lastItem.id, as: [UpdateDramaGroup].self)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups) if case let .result(groups) = response {
self.updateDramaGroups = appendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups)
}
} }
} }
} }