import { StatusBar } from 'expo-status-bar' import { View, Text } from 'react-native' import React, { useState } from 'react'; import stylesScreen from './style/screens.style'; import styles from './style/Settings.style'; import { TopBar } from '../components/TopBar'; import { ButtonGreySmall } from '../components/ButtonGreySmall'; import { PickerGreySmall } from '../components/PickerGreySmall'; import { useUserStore } from '../context/userContext'; import DialogInput from 'react-native-dialog-input'; import UserModificationManager from '../core/User/userModificationManager'; import { MANAGER_USER } from '../../appManagers'; function Settings(props: { navigation: any; }) { const { navigation } = props const setUser = useUserStore((state) => state.setUser); const [dialogPseudoVisible, setDialogPseudoVisible] = useState(false); const [dialogPasswordVisible, setDialogPasswordVisible] = useState(false); const [selectedSex, setSelectedSex] = useState(""); const [selectedNationality, setSelectedNationality] = useState(""); async function changeUsername(username:string){ let userManager = new UserModificationManager(); let tmp=MANAGER_USER.getCurrentUser(); if (tmp!=null){ await userManager.changeUsername(tmp, username); setUser(tmp); MANAGER_USER.setCurrentUser(tmp); } } async function changePassword(password:string){ let userManager = new UserModificationManager(); let tmp=MANAGER_USER.getCurrentUser(); if (tmp!=null){ await userManager.changePassword(tmp, password); setUser(tmp); MANAGER_USER.setCurrentUser(tmp); } } async function changeSexe(sexe:string){ let userManager = new UserModificationManager(); let tmp=MANAGER_USER.getCurrentUser(); if (tmp!=null && sexe != null){ await userManager.changeSexe(tmp, sexe); setUser(tmp); MANAGER_USER.setCurrentUser(tmp); } } async function changeNationality(nationality:string){ let userManager = new UserModificationManager(); let tmp=MANAGER_USER.getCurrentUser(); if (tmp!=null && nationality != null){ await userManager.changeNationality(tmp, nationality); setUser(tmp); MANAGER_USER.setCurrentUser(tmp); } } return ( Informations du Joueur Pseudo: {useUserStore().user?.getUsername()} {setDialogPseudoVisible(true)}} title='Changer le pseudo'/> Mot de passe: {useUserStore().user?.getPassword()} setDialogPasswordVisible(true) } title='Changer le mot de passe'/> Nationalité: {useUserStore().user?.getNationality()} setSelectedNationality(value)} donePress={() => changeNationality(selectedNationality)} values={[ { label: 'France', value: 'Francais(e)' }, { label: 'Royaume-Uni', value: 'Anglais(e)' }, { label: 'Espagne', value: 'Espagnol(e)' }, { label: 'Belgique', value: 'Belge' }, { label: 'Allemagne', value: 'Allemand(e)' }, ]}/> Sexe: {useUserStore().user?.getSexe()} setSelectedSex(value)} donePress={() => changeSexe(selectedSex)} values={[ { label: 'Homme', value: 'Homme' }, { label: 'Femme', value: 'Femme' }, {label: 'Autre', value: 'Autre' } ]} /> ID: {useUserStore().user?.getId()} { changeUsername(inputText); setDialogPseudoVisible(false)} } closeDialog={ () => {setDialogPseudoVisible(false)}}> { changePassword(inputText); setDialogPasswordVisible(false)} } closeDialog={ () => {setDialogPasswordVisible(false)}}> ); } export default Settings