fix index

This commit is contained in:
anlicheng 2025-02-25 14:26:40 +08:00
parent fc81d12ca0
commit ae31aea9f2

View File

@ -93,21 +93,22 @@ final class IndexModel {
@MainActor
func loadMoreUpdateDramas(userId: String, mode: API.LoadMode) async {
// id
let dramaIds = self.getDramaIds(self.updateDramaGroups)
print("current ids: \(dramaIds)")
switch mode {
case .prev:
// id
if let firstGroup = self.updateDramaGroups.first(where: { $0.items.count > 0}),
let firstItem = firstGroup.items.first {
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: firstItem.id, as: [UpdateDramaGroup].self)
if let firstId = dramaIds.first {
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: firstId, as: [UpdateDramaGroup].self)
if case let .result(groups) = response {
self.updateDramaGroups = preappendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups)
}
}
case .next:
if let lastGroup = self.updateDramaGroups.last(where: {$0.items.count > 0}),
let lastItem = lastGroup.items.last {
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: lastItem.id, as: [UpdateDramaGroup].self)
if let lastId = dramaIds.last {
let response = await API.loadMoreUpdateDramas(userId: userId, mode: mode, id: lastId, as: [UpdateDramaGroup].self)
if case let .result(groups) = response {
self.updateDramaGroups = appendMergeDramaGroups(groups: self.updateDramaGroups, mergeGroups: groups)
self.showUpdateDramas = transformGroupUpdateDramas(updateDramaGroups: self.updateDramaGroups)
@ -173,7 +174,14 @@ final class IndexModel {
return targetGroups
}
private func getDramaIds(_ updateDramaGroups: [UpdateDramaGroup]) -> [Int] {
return self.updateDramaGroups.flatMap { group in
return group.items.map { item in
return item.id
}
}
}
}
struct IndexView: View {