diff options
| author | Fuwn <[email protected]> | 2025-06-18 05:07:05 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-06-18 05:07:05 -0700 |
| commit | 509b34b0ab6980931d5b5714259b1c87600a403f (patch) | |
| tree | bf3bc3500d22c0b0903eb3b249cdcf51ddd0e5f6 | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-509b34b0ab6980931d5b5714259b1c87600a403f.tar.xz sora-testing-509b34b0ab6980931d5b5714259b1c87600a403f.zip | |
feat: Development commit
| -rw-r--r-- | Localizable.xcstrings | 3 | ||||
| -rw-r--r-- | Sora/Views/Generic/GenericListView.swift | 69 |
2 files changed, 24 insertions, 48 deletions
diff --git a/Localizable.xcstrings b/Localizable.xcstrings index 96503f4..36cfac8 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -358,6 +358,9 @@ "Sort" : { }, + "Sort By" : { + + }, "Suggestion Mode" : { }, diff --git a/Sora/Views/Generic/GenericListView.swift b/Sora/Views/Generic/GenericListView.swift index 895add8..a46c392 100644 --- a/Sora/Views/Generic/GenericListView.swift +++ b/Sora/Views/Generic/GenericListView.swift @@ -1,5 +1,3 @@ -// swiftlint:disable file_length - import SwiftUI struct GenericListView<T: Identifiable & Hashable & GenericItem>: View { // swiftlint:disable:this type_body_length @@ -15,7 +13,6 @@ struct GenericListView<T: Identifiable & Hashable & GenericItem>: View { // swi @State private var isCollectionErrorAlertPresented = false @State private var selectedFolder: UUID? @State private var sort: SettingsBookmarkSort = .dateBookmarked - @State private var isSortPickerPresented = false @State private var isCollectionPickerPresented = false @State private var isProviderPickerPresented = false @State private var selectedProvider: BooruProvider? @@ -190,70 +187,46 @@ struct GenericListView<T: Identifiable & Hashable & GenericItem>: View { // swi #if os(iOS) ToolbarItemGroup(placement: .secondaryAction) { if !allowBookmarking { - Button { - isSortPickerPresented.toggle() - } label: { - Label("Sort", systemImage: "arrow.up.arrow.down") - } - .popover(isPresented: $isSortPickerPresented) { - Picker("Sort", selection: $sort) { + Menu { + Picker("Sort By", selection: $sort) { ForEach(SettingsBookmarkSort.allCases, id: \.rawValue) { sortMode in Text(sortMode.rawValue).tag(sortMode) } } - .pickerStyle(.inline) - .padding() - } - - Button { - isCollectionPickerPresented.toggle() } label: { - Label("Collection", systemImage: "folder") + Label("Sort By", systemImage: "arrow.up.arrow.down") } - .popover(isPresented: $isCollectionPickerPresented) { - List { - Button("All") { - selectedFolder = nil - isCollectionPickerPresented = false - } + + Menu { + Picker("Collection", selection: $selectedFolder) { + Text("All").tag(nil as UUID?) if items.contains(where: { $0.folder == nil }) { - Button("Uncategorised") { - selectedFolder = uncategorisedUUID - isCollectionPickerPresented = false - } + Text("Uncategorised").tag(uncategorisedUUID) } ForEach(settings.folders, id: \.id) { folder in - Button(folder.name) { - selectedFolder = folder.id - isCollectionPickerPresented = false - } - .disabled(!isCollectionPopulated(folder.id)) + Text(folder.name) + .tag(folder.id) + .selectionDisabled(!isCollectionPopulated(folder.id)) } } - } - - Button { - isProviderPickerPresented.toggle() } label: { - Label("Provider", systemImage: "globe") + Label("Collection", systemImage: "folder") } - .popover(isPresented: $isProviderPickerPresented) { - List { - Button("All") { - selectedProvider = nil - isProviderPickerPresented = false - } + + Menu { + Picker("Provider", selection: $selectedProvider) { + Text("All").tag(nil as BooruProvider?) ForEach(BooruProvider.allCases, id: \.rawValue) { provider in - Button(provider.rawValue) { - selectedProvider = provider - isProviderPickerPresented = false - } - .disabled(!isProviderBookmarked(provider)) + Text(provider.rawValue) + .tag(provider) + .selectionDisabled(!isProviderBookmarked(provider)) } } + } label: { + Label("Provider", systemImage: "globe") } Button(action: { |