From b0c5996a7f5f363f14bdb1ed4076cde156764ae3 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 15 Jun 2025 06:11:57 -0700 Subject: feat: Development commit --- Sora/Views/Generic/GenericListView.swift | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Sora/Views/Generic/GenericListView.swift b/Sora/Views/Generic/GenericListView.swift index 05f837d..5945a03 100644 --- a/Sora/Views/Generic/GenericListView.swift +++ b/Sora/Views/Generic/GenericListView.swift @@ -93,6 +93,14 @@ struct GenericListView: View { // swi } } + private func isProviderBookmarked(_ provider: BooruProvider) -> Bool { + settings.bookmarks.contains { $0.provider == provider } + } + + private func isCollectionPopulated(_ folder: UUID?) -> Bool { + settings.bookmarks.contains { $0.folder == folder } + } + var body: some View { NavigationStack { VStack(spacing: 0) { @@ -121,7 +129,9 @@ struct GenericListView: View { // swi } ForEach(settings.folders, id: \.id) { folder in - Text(folder.name).tag(folder.id) + if isCollectionPopulated(folder.id) { + Text(folder.name).tag(folder.id) + } } } .padding(.bottom) @@ -132,7 +142,9 @@ struct GenericListView: View { // swi Text("All").tag(nil as BooruProvider?) ForEach(BooruProvider.allCases, id: \.rawValue) { provider in - Text(provider.rawValue).tag(provider) + if isProviderBookmarked(provider) { + Text(provider.rawValue).tag(provider) + } } } .padding(.bottom) @@ -213,15 +225,11 @@ struct GenericListView: View { // swi } ForEach(settings.folders, id: \.id) { folder in - let isCollectionPopulated = settings.bookmarks.contains { bookmark in - bookmark.folder == folder.id - } - Button(folder.name) { selectedFolder = folder.id isCollectionPickerPresented = false } - .disabled(!isCollectionPopulated) + .disabled(!isCollectionPopulated(folder.id)) } } } @@ -239,15 +247,11 @@ struct GenericListView: View { // swi } ForEach(BooruProvider.allCases, id: \.rawValue) { provider in - let isProviderBookmarked = settings.bookmarks.contains { bookmark in - bookmark.provider.rawValue == provider.rawValue - } - Button(provider.rawValue) { selectedProvider = provider isProviderPickerPresented = false } - .disabled(!isProviderBookmarked) + .disabled(!isProviderBookmarked(provider)) } } } -- cgit v1.2.3