diff --git a/frontend/src/pages/InvitationRegister.jsx b/frontend/src/pages/InvitationRegister.jsx
index e809840..ae14ada 100644
--- a/frontend/src/pages/InvitationRegister.jsx
+++ b/frontend/src/pages/InvitationRegister.jsx
@@ -1,6 +1,30 @@
import { useState, useEffect } from 'react';
import { useParams, useNavigate, Link } from 'react-router-dom';
+// Wrap défini en dehors du composant pour éviter le remontage à chaque frappe
+function Wrap({ appInfo, children }) {
+ return (
+
+
+
{ e.target.style.display = 'none'; }}
+ style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', objectFit: 'cover', opacity: 0.85 }} />
+
+ {appInfo.iconUrl &&
}
+
{appInfo.appName}
+
+
+
+
+ {appInfo.iconUrl &&
}
+
{appInfo.appName}
+
+
{children}
+
+
+
+ );
+}
+
export default function InvitationRegister() {
const { token } = useParams();
const navigate = useNavigate();
@@ -50,32 +74,10 @@ export default function InvitationRegister() {
finally { setBusy(false); }
};
- // ── Layout commun ────────────────────────────────────────────────────────
- const Wrap = ({ children }) => (
-
-
-
{ e.target.style.display = 'none'; }}
- style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', objectFit: 'cover', opacity: 0.85 }} />
-
- {appInfo.iconUrl &&
}
-
{appInfo.appName}
-
-
-
-
- {appInfo.iconUrl &&
}
-
{appInfo.appName}
-
-
{children}
-
-
-
- );
-
// ── Chargement ───────────────────────────────────────────────────────────
if (status === 'loading') {
return (
-
+
Vérification du lien…
);
@@ -84,7 +86,7 @@ export default function InvitationRegister() {
// ── Lien invalide / expiré ───────────────────────────────────────────────
if (status === 'invalid') {
return (
-
+
@@ -104,7 +106,7 @@ export default function InvitationRegister() {
// ── Succès ───────────────────────────────────────────────────────────────
if (status === 'done') {
return (
-
+
@@ -127,7 +129,7 @@ export default function InvitationRegister() {
const roleLabel = inv?.role === 'admin' ? 'Administrateur' : 'Utilisateur';
return (
-
+
Finaliser votre inscription