Add instrument region filtering

This commit is contained in:
diyaa
2026-09-14 01:08:30 +02:00
parent 9ddac746e5
commit 6c6aeae5bb
4 changed files with 47 additions and 9 deletions
@@ -6,6 +6,7 @@ struct InstrumentBrowserView: View {
@State private var searchText = ""
@State private var selectedFamilyCategory: String?
@State private var selectedRegionOrigin: String?
@Environment(\.dismiss) private var dismiss
init(catalog: LocalInstrumentCatalog = LocalInstrumentCatalog()) {
@@ -15,14 +16,27 @@ struct InstrumentBrowserView: View {
var body: some View {
NavigationStack {
VStack(spacing: 0) {
Picker("Family", selection: $selectedFamilyCategory) {
Text("All families").tag(String?.none)
HStack {
Picker("Family", selection: $selectedFamilyCategory) {
Text("All families").tag(String?.none)
ForEach(catalog.familyCategories, id: \.self) { familyCategory in
Text(familyCategory).tag(Optional(familyCategory))
ForEach(catalog.familyCategories, id: \.self) { familyCategory in
Text(familyCategory).tag(Optional(familyCategory))
}
}
.pickerStyle(.menu)
Spacer()
Picker("Region", selection: $selectedRegionOrigin) {
Text("All regions").tag(String?.none)
ForEach(catalog.regionsOfOrigin, id: \.self) { regionOrigin in
Text(regionOrigin).tag(Optional(regionOrigin))
}
}
.pickerStyle(.menu)
}
.pickerStyle(.menu)
.padding(.horizontal)
.padding(.vertical, 8)
@@ -31,7 +45,8 @@ struct InstrumentBrowserView: View {
List(
catalog.instruments(
matching: searchText,
familyCategory: selectedFamilyCategory
familyCategory: selectedFamilyCategory,
regionOrigin: selectedRegionOrigin
),
id: \.id
) { instrument in