Merge pull request 'ComponentWithVariable' (#18) from ComponentWithVariable into dev

Reviewed-on: #18
pull/21/head
Johan LACHENAL 11 months ago
commit effb257948

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

@ -25,6 +25,8 @@
C205A2D42BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2D32BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift */; }; C205A2D42BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205A2D32BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift */; };
C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24659E42BF5FE09004E80D5 /* MainMenu.swift */; }; C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24659E42BF5FE09004E80D5 /* MainMenu.swift */; };
C24659E92BF60FAA004E80D5 /* ButtonComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24659E82BF60FAA004E80D5 /* ButtonComponent.swift */; }; C24659E92BF60FAA004E80D5 /* ButtonComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24659E82BF60FAA004E80D5 /* ButtonComponent.swift */; };
C24DAB5C2C061DC700681CD0 /* AI.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24DAB5B2C061DC700681CD0 /* AI.swift */; };
C24DAB5E2C061E3A00681CD0 /* Language.swift in Sources */ = {isa = PBXBuildFile; fileRef = C24DAB5D2C061E3A00681CD0 /* Language.swift */; };
C25220EE2C00AC7E0026B71F /* GameParametersMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25220ED2C00AC7E0026B71F /* GameParametersMenuView.swift */; }; C25220EE2C00AC7E0026B71F /* GameParametersMenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25220ED2C00AC7E0026B71F /* GameParametersMenuView.swift */; };
C25220F32C00AF490026B71F /* EditComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25220F22C00AF490026B71F /* EditComponent.swift */; }; C25220F32C00AF490026B71F /* EditComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C25220F22C00AF490026B71F /* EditComponent.swift */; };
C2F394082C0462400070B4F6 /* PhotoButtonComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F394072C0462400070B4F6 /* PhotoButtonComponent.swift */; }; C2F394082C0462400070B4F6 /* PhotoButtonComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F394072C0462400070B4F6 /* PhotoButtonComponent.swift */; };
@ -70,6 +72,8 @@
C205A2D32BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WtaTennisUITestsLaunchTests.swift; sourceTree = "<group>"; }; C205A2D32BF373380097BD93 /* WtaTennisUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WtaTennisUITestsLaunchTests.swift; sourceTree = "<group>"; };
C24659E42BF5FE09004E80D5 /* MainMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenu.swift; sourceTree = "<group>"; }; C24659E42BF5FE09004E80D5 /* MainMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenu.swift; sourceTree = "<group>"; };
C24659E82BF60FAA004E80D5 /* ButtonComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonComponent.swift; sourceTree = "<group>"; }; C24659E82BF60FAA004E80D5 /* ButtonComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonComponent.swift; sourceTree = "<group>"; };
C24DAB5B2C061DC700681CD0 /* AI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AI.swift; sourceTree = "<group>"; };
C24DAB5D2C061E3A00681CD0 /* Language.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Language.swift; sourceTree = "<group>"; };
C25220ED2C00AC7E0026B71F /* GameParametersMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameParametersMenuView.swift; sourceTree = "<group>"; }; C25220ED2C00AC7E0026B71F /* GameParametersMenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameParametersMenuView.swift; sourceTree = "<group>"; };
C25220F22C00AF490026B71F /* EditComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditComponent.swift; sourceTree = "<group>"; }; C25220F22C00AF490026B71F /* EditComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditComponent.swift; sourceTree = "<group>"; };
C2F394072C0462400070B4F6 /* PhotoButtonComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoButtonComponent.swift; sourceTree = "<group>"; }; C2F394072C0462400070B4F6 /* PhotoButtonComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoButtonComponent.swift; sourceTree = "<group>"; };
@ -172,6 +176,7 @@
C205A2BC2BF373380097BD93 /* Views */ = { C205A2BC2BF373380097BD93 /* Views */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
C24DAB5A2C061DAA00681CD0 /* Enum */,
C25220F02C00AD7F0026B71F /* Components */, C25220F02C00AD7F0026B71F /* Components */,
C25220EC2C00AC530026B71F /* GameParametersMenu */, C25220EC2C00AC530026B71F /* GameParametersMenu */,
C25220EB2C00A9230026B71F /* GeneralParametersMenu */, C25220EB2C00A9230026B71F /* GeneralParametersMenu */,
@ -199,6 +204,15 @@
path = ArkitDoushiQiUITests; path = ArkitDoushiQiUITests;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
C24DAB5A2C061DAA00681CD0 /* Enum */ = {
isa = PBXGroup;
children = (
C24DAB5B2C061DC700681CD0 /* AI.swift */,
C24DAB5D2C061E3A00681CD0 /* Language.swift */,
);
path = Enum;
sourceTree = "<group>";
};
C25220EA2C00A9010026B71F /* MainMenu */ = { C25220EA2C00A9010026B71F /* MainMenu */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
@ -387,12 +401,14 @@
82CE59E92C045D1100ADEE24 /* GameScene.swift in Sources */, 82CE59E92C045D1100ADEE24 /* GameScene.swift in Sources */,
82F9D3312BFE3A9F009EDFAF /* HistoryGameDetail.swift in Sources */, 82F9D3312BFE3A9F009EDFAF /* HistoryGameDetail.swift in Sources */,
C24659E92BF60FAA004E80D5 /* ButtonComponent.swift in Sources */, C24659E92BF60FAA004E80D5 /* ButtonComponent.swift in Sources */,
C24DAB5E2C061E3A00681CD0 /* Language.swift in Sources */,
C2F394082C0462400070B4F6 /* PhotoButtonComponent.swift in Sources */, C2F394082C0462400070B4F6 /* PhotoButtonComponent.swift in Sources */,
C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */, C24659E52BF5FE09004E80D5 /* MainMenu.swift in Sources */,
82F9D3362BFE3B3C009EDFAF /* HistoryView.swift in Sources */, 82F9D3362BFE3B3C009EDFAF /* HistoryView.swift in Sources */,
C20310D82BFCC2410031657D /* GeneralParametersMenuView.swift in Sources */, C20310D82BFCC2410031657D /* GeneralParametersMenuView.swift in Sources */,
C2F3940B2C0463940070B4F6 /* ProfileComponent.swift in Sources */, C2F3940B2C0463940070B4F6 /* ProfileComponent.swift in Sources */,
C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */, C205A2B72BF373360097BD93 /* ArkitDoushiQiApp.swift in Sources */,
C24DAB5C2C061DC700681CD0 /* AI.swift in Sources */,
C25220F32C00AF490026B71F /* EditComponent.swift in Sources */, C25220F32C00AF490026B71F /* EditComponent.swift in Sources */,
C20310D62BFCB5FB0031657D /* PickerComponent.swift in Sources */, C20310D62BFCB5FB0031657D /* PickerComponent.swift in Sources */,
82F9D3332BFE3B12009EDFAF /* HistoryHeader.swift in Sources */, 82F9D3332BFE3B12009EDFAF /* HistoryHeader.swift in Sources */,

@ -14,7 +14,7 @@ struct EditComponent: View {
var body: some View { var body: some View {
Form { Form {
Section(header : Text(explanation)) { Section(header : Text(explanation)) {
TextField("Value", text : $name) TextField(value, text : $name)
} }
} }
} }

@ -49,13 +49,6 @@ struct PickerComponent<EnumType: RawRepresentable & Identifiable & Hashable>: Vi
} }
struct PickerComponent_Previews: PreviewProvider { struct PickerComponent_Previews: PreviewProvider {
enum AI: String, CaseIterable, Identifiable, Hashable {
case RandomAction = "IA Random"
case EasyTrainedAI = "IA Facile"
case MediumTrainedAI = "IA Intermédiaire"
var id: String { self.rawValue }
}
@State static var selectedItem = AI.RandomAction @State static var selectedItem = AI.RandomAction
static var previews: some View { static var previews: some View {
PickerComponent( PickerComponent(

@ -30,7 +30,7 @@ struct ToggleComponent: View {
struct ToggleComponent_Previews: PreviewProvider { struct ToggleComponent_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
VStack{ VStack{
ToggleComponent(description: "Dark mode", booleanName: "darkModeEnabled", booleanDefaultValue: false) ToggleComponent(description: "Dark mode", booleanName: "isDarkMode", booleanDefaultValue: false)
} }
} }
} }

@ -0,0 +1,16 @@
//
// AI.swift
// ArkitDoushiQi
//
// Created by Johan LACHENAL on 28/05/2024.
//
import Foundation
enum AI: String, CaseIterable, Identifiable, Hashable {
case RandomAction = "IA Random"
case EasyTrainedAI = "IA Facile"
case MediumTrainedAI = "IA Intermédiaire"
var id: String { self.rawValue }
}

@ -0,0 +1,14 @@
//
// Language.swift
// ArkitDoushiQi
//
// Created by Johan LACHENAL on 28/05/2024.
//
import Foundation
enum Language: String, CaseIterable, Identifiable, Hashable {
case French = "Français"
case English = "English"
var id: String { self.rawValue }
}

@ -7,23 +7,34 @@
import SwiftUI import SwiftUI
enum Language: String, CaseIterable, Identifiable, Hashable { struct GeneralParametersMenuView: View {
case French = "Français" @State private var selectedAIOption: AI
case English = "English" @State private var selectedLanguageOption: Language
var id: String { self.rawValue } @State private var selectedRulesOption: Rules
let ParametersTitle : String
let DarkModeDescription : String
let DarModeBooleanName : String
let DarkModeDefaultValue : Bool
let LanguagePickerTitle : String
init(parametersTitle: String,selectedAIOption: AI, selectedLanguageOption: Language, selectedRulesOption: Rules, DarkModeDescription: String, DarModeBooleanName: String, DarkModeDefaultValue: Bool, LanguagePickerTitle: String) {
self.ParametersTitle = parametersTitle
self.selectedAIOption = selectedAIOption
self.selectedLanguageOption = selectedLanguageOption
self.selectedRulesOption = selectedRulesOption
self.DarkModeDescription = DarkModeDescription
self.DarModeBooleanName = DarModeBooleanName
self.DarkModeDefaultValue = DarkModeDefaultValue
self.LanguagePickerTitle = LanguagePickerTitle
} }
struct GeneralParametersMenuView: View {
@State private var selectedAIOption: AIT = .RandomAction
@State private var selectedLanguageOption: Language = .French
@State private var selectedRulesOption: Rules = .Regular
var body: some View { var body: some View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
HStack(alignment: .center) { HStack(alignment: .center) {
Text("Paramètres").bold().font(.title) Text(ParametersTitle).bold().font(.title)
}.frame(maxWidth: .infinity) }.frame(maxWidth: .infinity)
Spacer().frame(maxHeight: 30) Spacer().frame(maxHeight: 30)
ToggleComponent(description: "Dark mode", booleanName: "darkModeEnabled", booleanDefaultValue: false) ToggleComponent(description: "Dark mode", booleanName: "isDarkMode", booleanDefaultValue: false)
PickerComponent(title: "Sélectionne un langage :", PickerComponent(title: "Sélectionne un langage :",
selectedOption: $selectedLanguageOption, selectedOption: $selectedLanguageOption,
options: Language.allCases) options: Language.allCases)
@ -34,6 +45,15 @@ struct GeneralParametersMenuView: View {
struct GeneralParametersMenuView_Previews: PreviewProvider { struct GeneralParametersMenuView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
GeneralParametersMenuView() GeneralParametersMenuView(
parametersTitle: "Paramètres",
selectedAIOption: .RandomAction,
selectedLanguageOption: .French,
selectedRulesOption: .Regular,
DarkModeDescription: "Dark Mode",
DarModeBooleanName: "isDarkMode",
DarkModeDefaultValue: false,
LanguagePickerTitle: "Séléctionne un langage"
)
} }
} }

@ -32,7 +32,16 @@ struct MainMenu: View {
{ Text("parties enregistrées page") } { Text("parties enregistrées page") }
Spacer().frame(height: 30) Spacer().frame(height: 30)
ButtonComponent(title: ParametersButtontText) ButtonComponent(title: ParametersButtontText)
{ GeneralParametersMenuView() } { GeneralParametersMenuView(
parametersTitle: "Paramètres",
selectedAIOption: .RandomAction,
selectedLanguageOption: .French,
selectedRulesOption: .Regular,
DarkModeDescription: "Dark Mode",
DarModeBooleanName: "isDarkMode",
DarkModeDefaultValue: false,
LanguagePickerTitle: "Séléctionne un langage"
) }
} }
Spacer() Spacer()
} }

Loading…
Cancel
Save