From 73afb2384220e3d80a9e24c11630172ba0d8c6bb Mon Sep 17 00:00:00 2001 From: akhmed Date: Tue, 15 Sep 2026 22:34:27 +0300 Subject: [PATCH] =?UTF-8?q?v1.0.4:=20=D0=B2=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA?= =?UTF-8?q?=D0=B0=20'=D0=9E=D0=B1=D1=89=D0=B8=D0=B9=20=D0=B4=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=83=D0=BF'=20=E2=80=94=20=D0=B1=D1=8B=D1=81=D1=82?= =?UTF-8?q?=D1=80=D1=8B=D0=B9=20=D1=81=D0=BA=D0=B0=D0=BD=20=D0=BA=D0=BE?= =?UTF-8?q?=D1=80=D0=BD=D1=8F=20+=20=D0=B3=D0=BB=D1=83=D0=B1=D0=BE=D0=BA?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B2=20=D1=84=D0=BE=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/YanDisk/Core/AppStore.swift | 22 +++++++++++++++++----- Sources/YanDisk/UI/MainSplitView.swift | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Sources/YanDisk/Core/AppStore.swift b/Sources/YanDisk/Core/AppStore.swift index 155d6d8..622f748 100644 --- a/Sources/YanDisk/Core/AppStore.swift +++ b/Sources/YanDisk/Core/AppStore.swift @@ -19,7 +19,7 @@ final class AppStore { var title: String { switch self { case .disk: return "YanDisk" - case .files: return "Доступные мне" + case .files: return "Общий доступ" case .recents: return "Недавние" case .favorites: return "Избранное" case .screenshots: return "Скриншоты" @@ -251,18 +251,30 @@ final class AppStore { // MARK: - Shared with me (field `share`, is_owned == false) + /// Сначала показываем общие папки корня (быстро), затем углубляем скан в фоне. func loadPublicItems() async { guard let api else { return } isLoading = true defer { isLoading = false } do { - let shared = try await api.sharedWithMe() - publicItems = shared.sorted { a, b in - a.displayName.localizedCaseInsensitiveCompare(b.displayName) == .orderedAscending - } + let shallow = try await api.sharedWithMe(maxDepth: 0) + publicItems = Self.sorted(shallow) errorMessage = nil } catch { 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 } } diff --git a/Sources/YanDisk/UI/MainSplitView.swift b/Sources/YanDisk/UI/MainSplitView.swift index a4c940f..a93df3b 100644 --- a/Sources/YanDisk/UI/MainSplitView.swift +++ b/Sources/YanDisk/UI/MainSplitView.swift @@ -171,7 +171,7 @@ struct MainSplitView: View { case .recents: return "Недавние" case .favorites: return "Избранное" case .screenshots: return "Скриншоты" - case .files: return "Доступные мне" + case .files: return "Общий доступ" default: if store.currentPath == "/" { return "YanDisk" } return store.currentPath