This commit is contained in:
Hymmel 2025-10-09 11:31:21 +02:00
parent 81fbb08041
commit 7501821341

View file

@ -1,6 +1,6 @@
'use client';
import { FormEvent, useEffect, useMemo, useState } from 'react';
import { FormEvent, useEffect, useMemo, useRef, useState } from 'react';
const defaultApiBase =
process.env.NODE_ENV === 'production'
@ -212,16 +212,19 @@ export default function Page() {
const [profileLoading, setProfileLoading] = useState(false);
const [profileSelectedBase, setProfileSelectedBase] = useState<ProfileBase | null>(null);
const [loading, setLoading] = useState(true);
const isAuthenticatedRef = useRef(false);
useEffect(() => {
(async () => {
try {
const data = await request('GET', API.me);
setUser(data.user);
isAuthenticatedRef.current = true;
await refreshData();
setView('dashboard');
} catch (_err) {
setUser(null);
isAuthenticatedRef.current = false;
setView('dashboard');
} finally {
setLoading(false);
@ -230,7 +233,7 @@ export default function Page() {
}, []);
async function refreshData() {
if (!user && !document.cookie.includes('token')) {
if (!isAuthenticatedRef.current) {
return;
}
try {
@ -303,6 +306,7 @@ export default function Page() {
setErrors((prev) => ({ ...prev, login: '' }));
const data = await request('POST', API.login, payload);
setUser(data.user);
isAuthenticatedRef.current = true;
await refreshData();
setView('dashboard');
} catch (error: any) {
@ -321,6 +325,7 @@ export default function Page() {
setErrors((prev) => ({ ...prev, signup: '' }));
const data = await request('POST', API.signup, payload);
setUser(data.user);
isAuthenticatedRef.current = true;
await refreshData();
setView('dashboard');
} catch (error: any) {
@ -610,6 +615,7 @@ export default function Page() {
setProfileSearchTerm('');
setProfileError('');
setProfileLoading(false);
isAuthenticatedRef.current = false;
setView('dashboard');
}
}