AxL95 commited on
Commit
b87faf1
·
verified ·
1 Parent(s): dfc198b

Update frontend/src/App.js

Browse files
Files changed (1) hide show
  1. frontend/src/App.js +43 -16
frontend/src/App.js CHANGED
@@ -4,6 +4,7 @@ import ChatInterface from './components/ChatInterface';
4
  import Panel from './components/Panel';
5
  import Login from './components/Login';
6
  import Signin from './components/Signin';
 
7
 
8
  function App() {
9
  const [isCollapsed, setIsCollapsed] = useState(false);
@@ -13,19 +14,28 @@ function App() {
13
  const [isAuthenticated, setIsAuthenticated] = useState(false);
14
  const [userName, setUserName] = useState('');
15
  const [page, setPage] = useState("login"); // Démarrer sur login par défaut
 
 
16
 
17
  // Vérifier si l'utilisateur est déjà connecté au chargement
18
- useEffect(() => {
19
- const storedUserName = localStorage.getItem('userName');
20
- if (storedUserName) {
21
- setUserName(storedUserName);
22
- setIsAuthenticated(true);
23
- setPage("chat");
24
-
25
- // Charger les conversations de l'utilisateur
26
- fetchConversations();
27
- }
28
- }, []);
 
 
 
 
 
 
 
29
 
30
  // Fonction pour récupérer les conversations depuis l'API
31
  const fetchConversations = async () => {
@@ -187,18 +197,22 @@ function App() {
187
  const handleLoginSuccess = () => {
188
  // Récupérer le nom d'utilisateur stocké par le composant Login
189
  const storedUserName = localStorage.getItem('userName');
 
 
190
  setUserName(storedUserName);
 
191
  setIsAuthenticated(true);
192
- setPage("chat");
 
 
193
 
194
  // Charger les conversations de l'utilisateur
195
  fetchConversations();
196
  };
197
-
198
- const handleLogout = async () => {
199
  try {
200
  // Appeler l'API de déconnexion
201
- await fetch('/api/logout', {
202
  method: 'POST',
203
  credentials: 'include',
204
  });
@@ -206,10 +220,13 @@ function App() {
206
  // Nettoyer le stockage local
207
  localStorage.removeItem('userName');
208
  localStorage.removeItem('userId');
209
-
 
210
  // Réinitialiser l'état
211
  setIsAuthenticated(false);
212
  setUserName('');
 
 
213
  setConversations([]);
214
  setMessages([]);
215
  setActiveConversationId(null);
@@ -234,6 +251,16 @@ function App() {
234
  onLogout={handleLogout}
235
  />
236
  )}
 
 
 
 
 
 
 
 
 
 
237
 
238
  <div className="main-content">
239
  {isCollapsed && page === "chat" && (
 
4
  import Panel from './components/Panel';
5
  import Login from './components/Login';
6
  import Signin from './components/Signin';
7
+ import AdminPanel from './components/AdminPanel';
8
 
9
  function App() {
10
  const [isCollapsed, setIsCollapsed] = useState(false);
 
14
  const [isAuthenticated, setIsAuthenticated] = useState(false);
15
  const [userName, setUserName] = useState('');
16
  const [page, setPage] = useState("login"); // Démarrer sur login par défaut
17
+ const [userRole, setUserRole] = useState('');
18
+
19
 
20
  // Vérifier si l'utilisateur est déjà connecté au chargement
21
+ useEffect(() => {
22
+ const storedUserName = localStorage.getItem('userName');
23
+ const storedUserRole = localStorage.getItem('userRole');
24
+
25
+ if (storedUserName) {
26
+ setUserName(storedUserName);
27
+ setUserRole(storedUserRole); // Charge le rôle mais ne change pas la page
28
+ setIsAuthenticated(true);
29
+
30
+ // Toujours définir la page sur "chat" au début, quel que soit le rôle
31
+ setPage("chat");
32
+
33
+ // Charger les conversations de l'utilisateur
34
+ fetchConversations();
35
+
36
+ console.log("Role chargé depuis localStorage:", storedUserRole);
37
+ }
38
+ }, []);
39
 
40
  // Fonction pour récupérer les conversations depuis l'API
41
  const fetchConversations = async () => {
 
197
  const handleLoginSuccess = () => {
198
  // Récupérer le nom d'utilisateur stocké par le composant Login
199
  const storedUserName = localStorage.getItem('userName');
200
+ const storedUserRole = localStorage.getItem('userRole');
201
+
202
  setUserName(storedUserName);
203
+ setUserRole(storedUserRole);
204
  setIsAuthenticated(true);
205
+
206
+ setPage(storedUserRole === "Administrateur" ? "Administrateur" : "chat");
207
+
208
 
209
  // Charger les conversations de l'utilisateur
210
  fetchConversations();
211
  };
212
+ const handleLogout = async () => {
 
213
  try {
214
  // Appeler l'API de déconnexion
215
+ await fetch('http://localhost:7860/api/logout', {
216
  method: 'POST',
217
  credentials: 'include',
218
  });
 
220
  // Nettoyer le stockage local
221
  localStorage.removeItem('userName');
222
  localStorage.removeItem('userId');
223
+ localStorage.removeItem('userRole'); // Ajout de cette ligne
224
+
225
  // Réinitialiser l'état
226
  setIsAuthenticated(false);
227
  setUserName('');
228
+ setUserRole(''); // Ajout de cette ligne
229
+
230
  setConversations([]);
231
  setMessages([]);
232
  setActiveConversationId(null);
 
251
  onLogout={handleLogout}
252
  />
253
  )}
254
+
255
+ {page === "Administrateur" && (
256
+ <AdminPanel
257
+ isCollapsed={isCollapsed}
258
+ onToggleCollapse={toggleCollapse}
259
+ userName={userName}
260
+ onLogout={handleLogout}
261
+ setPage={setPage} // Important: ajouter cette prop
262
+ />
263
+ )}
264
 
265
  <div className="main-content">
266
  {isCollapsed && page === "chat" && (