diff options
| author | Fuwn <[email protected]> | 2025-06-15 06:11:57 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-15 06:11:57 -0700 |
| commit | b0c5996a7f5f363f14bdb1ed4076cde156764ae3 (patch) | |
| tree | 60c277bfc5768ef5107d68fbce49fce459e6b2ab | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-b0c5996a7f5f363f14bdb1ed4076cde156764ae3.tar.xz sora-testing-b0c5996a7f5f363f14bdb1ed4076cde156764ae3.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Views/Generic/GenericListView.swift | 28 |
1 files 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<T: Identifiable & Hashable & GenericItem>: 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<T: Identifiable & Hashable & GenericItem>: 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<T: Identifiable & Hashable & GenericItem>: 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<T: Identifiable & Hashable & GenericItem>: 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<T: Identifiable & Hashable & GenericItem>: 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)) } } } |