jj
This commit is contained in:
parent
81fbb08041
commit
7501821341
1 changed files with 8 additions and 2 deletions
|
|
@ -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');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue