summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-18 05:07:05 -0700
committerFuwn <[email protected]>2025-06-18 05:07:05 -0700
commit509b34b0ab6980931d5b5714259b1c87600a403f (patch)
treebf3bc3500d22c0b0903eb3b249cdcf51ddd0e5f6
parentfeat: Development commit (diff)
downloadsora-testing-509b34b0ab6980931d5b5714259b1c87600a403f.tar.xz
sora-testing-509b34b0ab6980931d5b5714259b1c87600a403f.zip
feat: Development commit
-rw-r--r--Localizable.xcstrings3
-rw-r--r--Sora/Views/Generic/GenericListView.swift69
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: {