rolexx commited on
Commit
a3b1b80
·
1 Parent(s): 54bd0d7
src/components/defense/Defense.tsx CHANGED
@@ -44,6 +44,7 @@ const DefenseScene: FC<DefenseSceneProps> = ({
44
  setMandatoryWords(requiredWords);
45
  }
46
  setReaction('');
 
47
  }, [requiredWords]);
48
 
49
  // Génération des positions et initialisation
@@ -64,15 +65,20 @@ const DefenseScene: FC<DefenseSceneProps> = ({
64
  }
65
  }, [isLoading, wordPositions.length]); // eslint-disable-line react-hooks/exhaustive-deps
66
 
 
 
 
 
67
  // Timer et reset de la question
68
  useEffect(() => {
69
  // Timer
70
  const timer = setInterval(() => {
71
  setCountdown((prev) => {
72
- if (prev <= 1) {
 
 
73
  clearInterval(timer);
74
  setIsTimeUp(true);
75
- handleSubmit(answer);
76
  }
77
  return prev - 1;
78
  });
@@ -154,6 +160,7 @@ const DefenseScene: FC<DefenseSceneProps> = ({
154
 
155
  const handleTextChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
156
  const newText = e.target.value;
 
157
  const cursorPosition = e.target.selectionStart;
158
 
159
  // Si c'est une suppression
@@ -168,9 +175,9 @@ const DefenseScene: FC<DefenseSceneProps> = ({
168
  setAnswer(processedText);
169
  };
170
 
171
- const handleSubmit = (text: string) => {
172
  setChat(prevChat => ({
173
- messages: [...prevChat.messages, { content: text, role: 'lawyer' }]
174
  }));
175
  setNextScene();
176
  };
@@ -261,7 +268,7 @@ const DefenseScene: FC<DefenseSceneProps> = ({
261
 
262
  {/* Bouton de soumission */}
263
  <button
264
- onClick={() => handleSubmit(answer)}
265
  disabled={!isAnswerValid()}
266
  className={`absolute bottom-5 right-5 px-8 py-4 rounded-lg text-xl transition-all duration-300 ${isAnswerValid()
267
  ? 'bg-sky-500 hover:bg-blue-700 cursor-pointer'
 
44
  setMandatoryWords(requiredWords);
45
  }
46
  setReaction('');
47
+
48
  }, [requiredWords]);
49
 
50
  // Génération des positions et initialisation
 
65
  }
66
  }, [isLoading, wordPositions.length]); // eslint-disable-line react-hooks/exhaustive-deps
67
 
68
+ useEffect(() => {
69
+ console.log(answer)
70
+ }, [answer])
71
+
72
  // Timer et reset de la question
73
  useEffect(() => {
74
  // Timer
75
  const timer = setInterval(() => {
76
  setCountdown((prev) => {
77
+ console.log('prev:', prev)
78
+ if (prev === 0) {
79
+ handleSubmit();
80
  clearInterval(timer);
81
  setIsTimeUp(true);
 
82
  }
83
  return prev - 1;
84
  });
 
160
 
161
  const handleTextChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
162
  const newText = e.target.value;
163
+ setAnswer(newText);
164
  const cursorPosition = e.target.selectionStart;
165
 
166
  // Si c'est une suppression
 
175
  setAnswer(processedText);
176
  };
177
 
178
+ const handleSubmit = () => {
179
  setChat(prevChat => ({
180
+ messages: [...prevChat.messages, { content: answer, role: 'lawyer' }]
181
  }));
182
  setNextScene();
183
  };
 
268
 
269
  {/* Bouton de soumission */}
270
  <button
271
+ onClick={() => handleSubmit()}
272
  disabled={!isAnswerValid()}
273
  className={`absolute bottom-5 right-5 px-8 py-4 rounded-lg text-xl transition-all duration-300 ${isAnswerValid()
274
  ? 'bg-sky-500 hover:bg-blue-700 cursor-pointer'
src/components/menu/Menu.tsx CHANGED
@@ -9,7 +9,13 @@ interface MenuSceneProps {
9
  setNextScene: () => void;
10
  }
11
 
12
- const MenuScene: FC<MenuSceneProps> = ({ language, setLanguage, setNextScene }) => {
 
 
 
 
 
 
13
  return (
14
  <div className="relative w-screen h-screen">
15
  {/* Image de fond */}
@@ -23,30 +29,26 @@ const MenuScene: FC<MenuSceneProps> = ({ language, setLanguage, setNextScene })
23
 
24
  {/* Contenu du menu avec un fond semi-transparent */}
25
  <div className="relative z-10 flex flex-col items-end justify-center h-full w-full">
26
- {/* Sélecteur de langue */}
27
-
28
- <div className='flex flex-col items-center justify-center w-[20%] mr-[20%]'>
29
- <div className='w-full'>
30
- <select
31
- value={language}
32
- onChange={(e) => setLanguage(e.target.value as 'fr' | 'en' | 'es')}
33
- className="w-full px-4 py-2 rounded-lg bg-white text-slate-900 border border-slate-200 focus:outline-none focus:ring-2 focus:ring-blue-500"
34
  >
35
- <option value="fr">Français</option>
36
- <option value="en">English</option>
37
- <option value="es">Espanol</option>
38
- </select>
39
- </div>
40
-
41
- {/* Bouton Play */}
42
- <button
43
- onClick={setNextScene}
44
- className="px-8 py-4 text-xl w-full font-bold text-white bg-blue-600 rounded-lg hover:bg-blue-700 transition-colors mt-8"
45
- >
46
- {language === 'fr' ? 'Jouer' : language === 'en' ? 'Play' : 'Jugar'}
47
- </button>
48
- </div>
49
-
50
  </div>
51
  </div>
52
  );
 
9
  setNextScene: () => void;
10
  }
11
 
12
+ const MenuScene: FC<MenuSceneProps> = ({ setLanguage, setNextScene }) => {
13
+
14
+ const handleLanguageSelect = (language: 'fr' | 'en' | 'es') => {
15
+ setLanguage(language);
16
+ setNextScene();
17
+ };
18
+
19
  return (
20
  <div className="relative w-screen h-screen">
21
  {/* Image de fond */}
 
29
 
30
  {/* Contenu du menu avec un fond semi-transparent */}
31
  <div className="relative z-10 flex flex-col items-end justify-center h-full w-full">
32
+ <div className="flex flex-col gap-10 mr-[20vw]">
33
+ <button
34
+ onClick={() => handleLanguageSelect('fr')}
35
+ className="text-8xl text-white roboto-slab hover:text-sky-500 transition-colors"
 
 
 
 
36
  >
37
+ Français
38
+ </button>
39
+ <button
40
+ onClick={() => handleLanguageSelect('en')}
41
+ className="text-8xl text-white roboto-slab hover:text-sky-500 transition-colors"
42
+ >
43
+ English
44
+ </button>
45
+ <button
46
+ onClick={() => handleLanguageSelect('es')}
47
+ className="text-8xl text-white roboto-slab hover:text-sky-500 transition-colors"
48
+ >
49
+ Español
50
+ </button>
51
+ </div>
52
  </div>
53
  </div>
54
  );