big update

This commit is contained in:
15lu.akari
2025-08-26 23:37:39 +03:00
parent 6b88875bee
commit a87a3d12ab
34 changed files with 803 additions and 282 deletions

View File

@ -18,11 +18,24 @@ class AppState: ObservableObject {
@Published var allRoutes: [Route] = []
@Published var sightId: Int? = nil
@Published var sights: [SightModel] = [] // <- все достопримечательности маршрута
@Published var sights: [SightModel] = [] // все достопримечательности маршрута
@Published var selectedLanguage: String = "ru" {
didSet {
// если язык поменялся и маршрут уже выбран, перезагружаем достопримечательности
if let routeId = selectedRoute?.id {
Task {
await fetchSights(for: routeId)
}
}
}
}
// язык с начальным значением "ru"
// MARK: - Fetch Sights
private func fetchSights(for routeId: Int) async {
let urlString = "https://white-nights.krbl.ru/services/content/route/\(routeId)/sight"
// Добавляем параметр выбранного языка
let urlString = "https://white-nights.krbl.ru/services/content/route/\(routeId)/sight?lang=\(selectedLanguage)"
guard let url = URL(string: urlString) else { return }
do {
@ -50,7 +63,8 @@ class AppState: ObservableObject {
private func preloadThumbnails(for sights: [SightModel]) {
let session = URLSession.shared
for sight in sights {
guard let url = URL(string: "https://white-nights.krbl.ru/services/content/media/\(sight.thumbnail)/download") else { continue }
// Миниатюры тоже адаптируем под выбранный язык
guard let url = URL(string: "https://white-nights.krbl.ru/services/content/media/\(sight.thumbnail)/download?lang=\(selectedLanguage)") else { continue }
let request = URLRequest(url: url)
// Если уже в кэше, пропускаем