Useful rule selection

main
Mathieu GROUSSEAU 1 week ago
parent 9ef00e4859
commit 13a9189e8b

@ -29,14 +29,17 @@ struct NewGameView: View {
HStack { HStack {
Picker("newGame.rules.title", systemImage: "slider.horizontal.3", selection: $vm.rulesType) { Picker("newGame.rules.title", systemImage: "slider.horizontal.3", selection: $vm.rulesType) {
Text("generic.rules.classic.name").tag(RulesType.Classic) ForEach(RulesType.allCases) {
Text($0.baseTranslationKey).tag($0)
}
} }
Button(action: { // TODO: info button
// TODO // Button(action: {
}) { // // TODO
Image(systemName: "questionmark.circle") // }) {
} // Image(systemName: "questionmark.circle")
// }
} }
Section(header: Label("newGame.dimensions", systemImage: "crop")) { Section(header: Label("newGame.dimensions", systemImage: "crop")) {
@ -75,7 +78,6 @@ private struct PlayerSectionView: View {
@ObservedObject @ObservedObject
private var settings: PlayerSettingsVM private var settings: PlayerSettingsVM
@State private var name: String = ""
@State private var photo: PhotosPickerItem? = nil @State private var photo: PhotosPickerItem? = nil
var body: some View { var body: some View {
@ -85,16 +87,13 @@ private struct PlayerSectionView: View {
} }
} }
let binding: Binding<String> = if (settings.type == .Human) { if (settings.type == .Human) {
$name TextField("newGame.player.name", text: $settings.name)
} else { // TODO: MacOS
.constant(String(localized: String.LocalizationValue("\(settings.type.baseTranslationKey).name" as String))) //.textInputSuggestions(isEnabled: true) {
//
//}
} }
TextField("newGame.player.name", text: binding)
// TODO: MacOS
//.textInputSuggestions(isEnabled: true) {
//
//}
// // TODO: actual photo support // // TODO: actual photo support
// Image(systemName: "camera.viewfinder").overlay { // Image(systemName: "camera.viewfinder").overlay {
@ -120,6 +119,16 @@ extension PlayerType {
} }
} }
extension RulesType {
var baseTranslationKey: LocalizedStringKey {
return switch (self) {
case .Classic: "generic.rules.classic.name"
case .TicTacToe: "generic.rules.tictactoe.name"
case .PopOut: "generic.rules.popout.name"
}
}
}
#Preview { #Preview {
NewGameView() NewGameView()
} }

@ -12,7 +12,7 @@ class PlayerSettingsVM : ObservableObject, Identifiable {
@Published var type: PlayerType @Published var type: PlayerType
@Published var name: String = "" @Published var name: String = ""
init(type: PlayerType ) { init(type: PlayerType) {
self.type = type self.type = type
} }
} }

Loading…
Cancel
Save