Skip to content

Commit d5e46a6

Browse files
committed
Обновляем на экране по 500 площадок за раз
1 parent 584c844 commit d5e46a6

File tree

1 file changed

+4
-18
lines changed

1 file changed

+4
-18
lines changed

SwiftUI-WorkoutApp/Services/ParksManager.swift

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,6 @@ final class ParksManager: ObservableObject {
104104
let client = SWClient(with: DefaultsService())
105105
var page = 1
106106
let pageSize = 500
107-
var allParks = fullList // Используем уже загруженные из makeDefaultList
108-
var batchSize = 0
109-
let batchThreshold = 3000 // Обновляем каждые ~3000 площадок
110107

111108
while true {
112109
let parksPage = try await client.getParksPageByPage(page: page, pageSize: pageSize)
@@ -116,27 +113,16 @@ final class ParksManager: ObservableObject {
116113

117114
// Добавляем новые площадки, фильтруя дубликаты по id
118115
for newPark in parksPage {
119-
if !allParks.contains(where: { $0.id == newPark.id }) {
120-
allParks.append(newPark)
121-
batchSize += 1
116+
if !fullList.contains(where: { $0.id == newPark.id }) {
117+
fullList.append(newPark)
122118
}
123119
}
124120

125-
// Обновляем UI и сохраняем в файл батчами
126-
if batchSize >= batchThreshold {
127-
fullList = allParks
128-
try saveParksInMemory()
129-
batchSize = 0
130-
}
121+
// Сохраняем обновлённый список после каждой страницы
122+
try saveParksInMemory()
131123

132124
page += 1
133125
}
134-
135-
// Сохраняем оставшиеся площадки
136-
if batchSize > 0 {
137-
fullList = allParks
138-
try saveParksInMemory()
139-
}
140126
}
141127

142128
/// Обновление площадок с сервера

0 commit comments

Comments
 (0)