You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
2.0 KiB

//
// ParametersMenuView.swift
// ArkitDoushiQi
//
// Created by Johan LACHENAL on 21/05/2024.
//
import SwiftUI
struct GeneralParametersMenuView: View {
@EnvironmentObject var languageSettings: LanguageSettings
@State private var selectedAIOption: AI
@State private var selectedRulesOption: Rules
let parametersTitle = LocalizedStringKey("ParametersTitle")
let darkModeDescription = LocalizedStringKey("DarkModeDescription")
let darkModeBooleanName: String = "isDarkMode"
let darkModeDefaultValue: Bool = false
let languagePickerTitle = LocalizedStringKey("LanguagePickerTitle")
init(selectedAIOption: AI, selectedRulesOption: Rules) {
self._selectedAIOption = State(initialValue: selectedAIOption)
self._selectedRulesOption = State(initialValue: selectedRulesOption)
}
var body: some View {
VStack(alignment: .leading) {
HStack(alignment: .center) {
Text(parametersTitle).bold().font(.title)
}.frame(maxWidth: .infinity)
Spacer().frame(maxHeight: 30)
ToggleComponent(description: darkModeDescription, booleanName: darkModeBooleanName, booleanDefaultValue: darkModeDefaultValue)
PickerComponent(title: languagePickerTitle,
selectedOption: $languageSettings.selectedLanguage,
options: Language.allCases)
.onChange(of: languageSettings.selectedLanguage) { newLanguage in
languageSettings.changeLanguage(to: newLanguage)
}
}
.frame(maxHeight: .infinity, alignment: .top)
}
}
struct GeneralParametersMenuView_Previews: PreviewProvider {
static var previews: some View {
let languageSettings = LanguageSettings(selectedLanguage: .French)
GeneralParametersMenuView(
selectedAIOption: .RandomAction,
selectedRulesOption: .Regular
)
.environmentObject(languageSettings)
}
}