update frontend

This commit is contained in:
Your Name 2025-12-10 21:10:55 -05:00
parent e06a811227
commit 34414ebaca
1 changed files with 20 additions and 6 deletions

View File

@ -1,4 +1,4 @@
import React, { useState } from "react"; import React, { useState, useEffect } from "react";
import { useAuth } from "../../auth/AuthContext"; import { useAuth } from "../../auth/AuthContext";
import { registerUser } from "../../api/client"; import { registerUser } from "../../api/client";
@ -46,19 +46,34 @@ export default function TopBar({ theme = "dark", onChangeTheme }) {
const closeModal = () => { const closeModal = () => {
setShowAuth(false); setShowAuth(false);
// reset basique des champs
setLoginPass("");
setSignupError("");
}; };
// 🔒 Quand on devient authentifié fermer automatiquement le popup
useEffect(() => {
if (authenticated) {
setShowAuth(false);
}
}, [authenticated]);
const handleLoginSubmit = async (e) => { const handleLoginSubmit = async (e) => {
e.preventDefault(); e.preventDefault();
await login(loginUser, loginPass); await login(loginUser, loginPass);
// on laisse l'utilisateur fermer manuellement, // le useEffect ci-dessus va fermer le modal quand authenticated passe à true
// il voit en haut si ça a marché ou pas.
}; };
const handleSignupSubmit = async (e) => { const handleSignupSubmit = async (e) => {
e.preventDefault(); e.preventDefault();
setSignupError(""); setSignupError("");
if (!firstName.trim() || !lastName.trim() || !regUser.trim() || !regEmail.trim() || !regPass) { if (
!firstName.trim() ||
!lastName.trim() ||
!regUser.trim() ||
!regEmail.trim() ||
!regPass
) {
setSignupError("Nom, prénom, user, email et mot de passe sont requis."); setSignupError("Nom, prénom, user, email et mot de passe sont requis.");
return; return;
} }
@ -73,8 +88,7 @@ export default function TopBar({ theme = "dark", onChangeTheme }) {
}); });
// après création, on tente le login direct // après création, on tente le login direct
await login(regUser.trim(), regPass); await login(regUser.trim(), regPass);
// on ferme le popup, l'état auth s'affiche dans la topbar // la fermeture est gérée aussi par le useEffect(authenticated)
setShowAuth(false);
} catch (err) { } catch (err) {
console.error(err); console.error(err);
setSignupError(err.message || "Register error."); setSignupError(err.message || "Register error.");