remade the mf source selector menu

This commit is contained in:
cranci1 2025-03-21 16:52:46 +01:00
parent d2099d65af
commit 0b3df78cdd

View file

@ -30,6 +30,7 @@ struct SearchView: View {
@State private var searchText = ""
@State private var hasNoResults = false
@State private var isLandscape: Bool = UIDevice.current.orientation.isLandscape
@State private var isModuleSelectorPresented = false
private var selectedModule: ScrapingModule? {
guard let id = selectedModuleId else { return nil }
@ -68,7 +69,6 @@ struct SearchView: View {
NavigationView {
ScrollView {
let columnsCount = determineColumns()
VStack(spacing: 0) {
HStack {
SearchBar(text: $searchText, onSearchButtonClicked: performSearch)
@ -164,14 +164,8 @@ struct SearchView: View {
.navigationBarTitleDisplayMode(.large)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
HStack(spacing: 4) {
if let selectedModule = selectedModule {
Text(selectedModule.metadata.sourceName)
.font(.headline)
.foregroundColor(.secondary)
}
Menu {
ForEach(moduleManager.modules) { module in
ForEach(moduleManager.modules, id: \.id) { module in
Button {
selectedModuleId = module.id.uuidString
} label: {
@ -181,21 +175,29 @@ struct SearchView: View {
.aspectRatio(contentMode: .fit)
.frame(width: 20, height: 20)
.cornerRadius(4)
Text(module.metadata.sourceName)
Spacer()
if module.id.uuidString == selectedModuleId {
Image(systemName: "checkmark")
.foregroundColor(.accentColor)
}
}
}
}
} label: {
Image(systemName: "chevron.up.chevron.down")
HStack(spacing: 4) {
if let selectedModule = selectedModule {
Text(selectedModule.metadata.sourceName)
.font(.headline)
.foregroundColor(.secondary)
} else {
Text("Select Module")
.font(.headline)
.foregroundColor(.accentColor)
}
Image(systemName: "chevron.down")
.foregroundColor(.secondary)
}
}
.id("moduleMenuHStack")
.fixedSize()
}
}