@ -55,6 +55,7 @@ import {generateLatexCode, generateLatexCodeEnigme} from '../Script/LatexScript'
import Pair from '../model/Pair' ;
import Indice from '../model/Indices/Indice' ;
import { basePath } from "../AdressSetup"
import { useAuth } from '../Contexts/AuthContext' ;
let cptNavigation = 0
@ -65,6 +66,7 @@ const InGame = ({locale, changeLocale}) => {
const theme = useTheme ( ) ;
const navigate = useNavigate ( )
const { user , manager } = useAuth ( )
const params = new URLSearchParams ( window . location . search ) ;
@ -324,55 +326,70 @@ const InGame = ({locale, changeLocale}) => {
const [ playTurnSound , setPlayTurnSound ] = useState ( false ) ;
const [ soundPreference , setSoundPreference ] = useState ( true ) ; // utilisateur
const [ enteredNumber , setEnteredNumber ] = useState ( 25 ) ;
const [ enteredNumberIndices , setEnteredNumberIndices ] = useState ( 3 ) ;
const [ enteredNumber , setEnteredNumber ] = useState ( user ? . nbNodes || 25 ) ;
const [ enteredNumberIndices , setEnteredNumberIndices ] = useState ( user ? . nbIndices || 3 ) ;
//@ts-ignore
const handleNumberChange = ( event ) = > {
//const newNumber = Math.max(20, Math.min(50, parseInt(event.target.value, 10)));
setEnteredNumber ( event . target . value ) ;
} ;
//@ts-ignore
const handleNumberIndicesChange = ( event ) = > {
//const newNumber = Math.max(3, Math.min(6, parseInt(event.target.value, 10)));
setEnteredNumberIndices ( event . target . value ) ;
} ;
//@ts-ignore
const handleKeyDown = ( event ) = > {
// Vérifier si la touche appuyée est "Entrée"
if ( event . key === 'Enter' ) {
if ( event . key === 'Enter' && user !== null ) {
const newNumber = Math . max ( 20 , Math . min ( 50 , parseInt ( event . target . value , 10 ) ) ) ;
user . nbNodes = newNumber ;
setEnteredNumber ( newNumber ) ;
setHistory ( [ ] ) ; changeGraph ( newNumber , enteredNumberIndices )
setHistory ( [ ] ) ;
}
} ;
const handleBlur = ( ) = > {
if ( user !== null ) {
const newNumber = Math . max ( 20 , Math . min ( 50 , enteredNumber ) ) ;
user . nbNodes = newNumber ;
setEnteredNumber ( newNumber ) ;
setHistory ( [ ] ) ;
changeGraph ( newNumber , enteredNumberIndices )
}
} ;
//@ts-ignore
const handleNumberIndicesChange = ( event ) = > {
setEnteredNumberIndices ( event . target . value ) ;
} ;
useEffect ( ( ) = > {
if ( changeGraph !== undefined ) {
manager ? . userService . changeNodesIndices ( enteredNumber , enteredNumberIndices )
changeGraph ( enteredNumber , enteredNumberIndices )
}
else {
setEnteredNumber ( user ? . nbNodes || 25 )
setEnteredNumberIndices ( user ? . nbIndices || 3 )
}
} , [ enteredNumber , enteredNumberIndices ] )
//@ts-ignore
const handleKeyDownIndice = ( event ) = > {
// Vérifier si la touche appuyée est "Entrée"
if ( event . key === 'Enter' ) {
if ( event . key === 'Enter' && user != null ) {
const newNumber = Math . max ( 3 , Math . min ( 6 , parseInt ( event . target . value , 10 ) ) ) ;
user . nbIndices = newNumber ;
setEnteredNumberIndices ( newNumber ) ;
setHistory ( [ ] ) ;
changeGraph ( enteredNumber , newNumber )
}
} ;
const handleBlurIndice = ( ) = > {
if ( user !== null ) {
const newNumber = Math . max ( 3 , Math . min ( 6 , enteredNumber ) ) ;
setEnteredNumberIndices ( newNumber ) ;
user . nbIndices = newNumber ;
setHistory ( [ ] ) ;
changeGraph ( enteredNumber , newNumber )
}
} ;
const handleSoundPreferenceChange = ( ) = > {
@ -591,7 +608,7 @@ changeGraph(enteredNumber, newNumber)
< div className = 'nbNodeDiv' style = { { padding : '20px' } } >
< label htmlFor = "numberInput" > < FormattedMessage id = 'param.node' / > : < / label >
< div >
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumber > 20 ) { setEnteredNumber ( enteredNumber - 1 ) ; setHistory( [ ] ) ; changeGraph ( enteredNumber , enteredNumberIndices ) } } }
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumber > 20 && user !== null ) { setEnteredNumber ( enteredNumber - 1 ) ; user. nbNodes = user . nbNodes - 1 ; setHistory ( [ ] ) ; } } }
style = { { borderColor :theme.colors.secondary } } > - < / button >
< input
// type="number"
@ -599,10 +616,10 @@ changeGraph(enteredNumber, newNumber)
id = "numberInput"
value = { enteredNumber }
onChange = { handleNumberChange }
onKeyDown = { handleKeyDown }
onBlur = { handleBlur }
onKeyDown = { handleKeyDown } // Ajout de l'événement onKeyDown
onBlur = { handleBlur } // Ajout de l'événement onBlur
/ >
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumber < 50 ) { setEnteredNumber ( enteredNumber + 1 ) ; setHistory( [ ] ) ; changeGraph ( enteredNumber , enteredNumberIndices ) }}}
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumber < 50 & & user ! = = null ) { setEnteredNumber ( enteredNumber + 1 ) ; user.nbNodes = user.nbNodes + 1 ; setHistory( [ ] ) ; }}}
style = { { borderColor :theme.colors.secondary } } > + < / button >
< / div >
< / div > }
@ -611,7 +628,7 @@ changeGraph(enteredNumber, newNumber)
< div className = 'nbNodeDiv' style = { { padding : '20px' } } >
< label htmlFor = "numberInput" > < FormattedMessage id = 'param.clue' / > : < / label >
< div >
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumberIndices > 3 ) { setEnteredNumberIndices ( enteredNumberIndices - 1 ) ; setHistory ( [ ] ) ; changeGraph ( enteredNumber , enteredNumberIndices ) } } }
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumberIndices > 3 && user !== null ) { setEnteredNumberIndices ( enteredNumberIndices - 1 ) ; user . nbIndices = user . nbIndices - 1 ; setHistory ( [ ] ) ; } } }
style = { { borderColor :theme.colors.secondary } } > - < / button >
< input
// type="number"
@ -619,9 +636,9 @@ changeGraph(enteredNumber, newNumber)
id = "numberInput"
value = { enteredNumberIndices }
onChange = { handleNumberIndicesChange }
onKeyDown = { handleKeyDownIndice }
onKeyDown = { handleKeyDownIndice } // Ajout de l'événement onKeyDown
onBlur = { handleBlurIndice } / >
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumberIndices < 6 ) { setEnteredNumberIndices ( enteredNumberIndices + 1 ) ; setHistory ( [ ] ) ; changeGraph ( enteredNumber , enteredNumberIndices ) }}}
< button className = 'valuebutton' onClick = { ( ) = > { if ( enteredNumberIndices < 6 & & user ! = = null ) { setEnteredNumberIndices ( enteredNumberIndices + 1 ) ; user.nbIndices = user.nbIndices + 1 ; setHistory ( [ ] ) ; }}}
style = { { borderColor :theme.colors.secondary } } > + < / button >
< / div >
< / div > }