diff --git a/src/auth/SupabaseAuthService.ts b/src/auth/SupabaseAuthService.ts index 43ab55a..1b8f1ba 100644 --- a/src/auth/SupabaseAuthService.ts +++ b/src/auth/SupabaseAuthService.ts @@ -44,6 +44,13 @@ export class SupabaseAuthService implements AuthService { return } + // Solo procesar eventos genuinos de inicio de sesión. + // TOKEN_REFRESHED, USER_UPDATED y similares son eventos internos — ignorarlos + // previene sobreescribir ediciones locales (nombre, empresa) con datos re-leídos de DB. + if (event !== 'INITIAL_SESSION' && event !== 'SIGNED_IN') { + return + } + if (event === 'SIGNED_IN') { // Primer login: upsert del usuario en la tabla users const email = session.user.email ?? '' diff --git a/src/components/ProfileSheet.tsx b/src/components/ProfileSheet.tsx index c45c399..f664042 100644 --- a/src/components/ProfileSheet.tsx +++ b/src/components/ProfileSheet.tsx @@ -23,7 +23,10 @@ export function ProfileSheet({ open, onOpenChange }: ProfileSheetProps) { setName(user.name) setCompany(user.company ?? '') } - }, [open, user]) + // Intencional: solo inicializar cuando el sheet se abre, no en cada cambio de `user` + // (evita resetear el formulario mientras el usuario está editando). + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [open]) async function handleSave() { if (!user || !name.trim()) return