Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73afb23842 |
@@ -19,7 +19,7 @@ final class AppStore {
|
|||||||
var title: String {
|
var title: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .disk: return "YanDisk"
|
case .disk: return "YanDisk"
|
||||||
case .files: return "Доступные мне"
|
case .files: return "Общий доступ"
|
||||||
case .recents: return "Недавние"
|
case .recents: return "Недавние"
|
||||||
case .favorites: return "Избранное"
|
case .favorites: return "Избранное"
|
||||||
case .screenshots: return "Скриншоты"
|
case .screenshots: return "Скриншоты"
|
||||||
@@ -251,18 +251,30 @@ final class AppStore {
|
|||||||
|
|
||||||
// MARK: - Shared with me (field `share`, is_owned == false)
|
// MARK: - Shared with me (field `share`, is_owned == false)
|
||||||
|
|
||||||
|
/// Сначала показываем общие папки корня (быстро), затем углубляем скан в фоне.
|
||||||
func loadPublicItems() async {
|
func loadPublicItems() async {
|
||||||
guard let api else { return }
|
guard let api else { return }
|
||||||
isLoading = true
|
isLoading = true
|
||||||
defer { isLoading = false }
|
defer { isLoading = false }
|
||||||
do {
|
do {
|
||||||
let shared = try await api.sharedWithMe()
|
let shallow = try await api.sharedWithMe(maxDepth: 0)
|
||||||
publicItems = shared.sorted { a, b in
|
publicItems = Self.sorted(shallow)
|
||||||
a.displayName.localizedCaseInsensitiveCompare(b.displayName) == .orderedAscending
|
|
||||||
}
|
|
||||||
errorMessage = nil
|
errorMessage = nil
|
||||||
} catch {
|
} catch {
|
||||||
handleError(error)
|
handleError(error)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Глубокий скан — в фоне, чтобы не блокировать вкладку.
|
||||||
|
Task { [weak self] in
|
||||||
|
guard let full = try? await api.sharedWithMe(maxDepth: 3) else { return }
|
||||||
|
guard let self, self.isAuthorized else { return }
|
||||||
|
self.publicItems = Self.sorted(full)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static func sorted(_ items: [DiskResource]) -> [DiskResource] {
|
||||||
|
items.sorted {
|
||||||
|
$0.displayName.localizedCaseInsensitiveCompare($1.displayName) == .orderedAscending
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ struct MainSplitView: View {
|
|||||||
case .recents: return "Недавние"
|
case .recents: return "Недавние"
|
||||||
case .favorites: return "Избранное"
|
case .favorites: return "Избранное"
|
||||||
case .screenshots: return "Скриншоты"
|
case .screenshots: return "Скриншоты"
|
||||||
case .files: return "Доступные мне"
|
case .files: return "Общий доступ"
|
||||||
default:
|
default:
|
||||||
if store.currentPath == "/" { return "YanDisk" }
|
if store.currentPath == "/" { return "YanDisk" }
|
||||||
return store.currentPath
|
return store.currentPath
|
||||||
|
|||||||
Reference in New Issue
Block a user