Add language catalog selector
This commit is contained in:
@@ -6,10 +6,10 @@ struct ProjectInspectorView: View {
|
||||
let saveProject: (SongProject) async -> Bool
|
||||
|
||||
@State private var newInstrumentName = ""
|
||||
@State private var newLanguageName = ""
|
||||
@State private var isInstrumentBrowserPresented = false
|
||||
@State private var isGenreStyleBrowserPresented = false
|
||||
@State private var isVocalistBrowserPresented = false
|
||||
@State private var isLanguageBrowserPresented = false
|
||||
@State private var isSaving = false
|
||||
@State private var saveStatus: SaveStatus?
|
||||
|
||||
@@ -100,17 +100,18 @@ struct ProjectInspectorView: View {
|
||||
}
|
||||
|
||||
Section("Languages") {
|
||||
Button {
|
||||
isLanguageBrowserPresented = true
|
||||
} label: {
|
||||
Label("Browse languages", systemImage: "character.book.closed")
|
||||
}
|
||||
|
||||
EditableTokenList(
|
||||
values: project.languages.map(\.name),
|
||||
removeAction: { index in
|
||||
project.removeLanguage(id: project.languages[index].id)
|
||||
}
|
||||
)
|
||||
AddTextRow(
|
||||
placeholder: "Add language",
|
||||
text: $newLanguageName,
|
||||
addAction: addLanguage
|
||||
)
|
||||
}
|
||||
|
||||
Section("Arabic Pronunciation") {
|
||||
@@ -157,6 +158,9 @@ struct ProjectInspectorView: View {
|
||||
.sheet(isPresented: $isVocalistBrowserPresented) {
|
||||
VocalistBrowserView(project: $project, saveProject: saveProject)
|
||||
}
|
||||
.sheet(isPresented: $isLanguageBrowserPresented) {
|
||||
LanguageBrowserView(project: $project, saveProject: saveProject)
|
||||
}
|
||||
}
|
||||
|
||||
private var durationSecondsBinding: Binding<String> {
|
||||
@@ -187,13 +191,6 @@ struct ProjectInspectorView: View {
|
||||
newInstrumentName = ""
|
||||
}
|
||||
|
||||
private func addLanguage() {
|
||||
let name = trimmed(newLanguageName)
|
||||
guard !name.isEmpty else { return }
|
||||
project.upsertLanguage(LanguageSelection(id: stableID(from: name), name: name))
|
||||
newLanguageName = ""
|
||||
}
|
||||
|
||||
private func save() async {
|
||||
isSaving = true
|
||||
let didSave = await saveProject(project)
|
||||
|
||||
Reference in New Issue
Block a user