fix: skip checkAuth on route change when already authenticated
This commit is contained in:
@@ -126,8 +126,15 @@ export default function CalendarPage() {
|
|||||||
}
|
}
|
||||||
}, [events, detailEvent]);
|
}, [events, detailEvent]);
|
||||||
|
|
||||||
// Check auth on mount
|
// Check auth on mount — skip when already authenticated so that navigating
|
||||||
|
// between routes doesn't retrigger checkAuth's transient `{ client: null,
|
||||||
|
// isLoading: true }` reset, which was flashing the spinner on every nav.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const state = useAuthStore.getState();
|
||||||
|
if (state.isAuthenticated && state.client) {
|
||||||
|
setInitialCheckDone(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth().finally(() => {
|
checkAuth().finally(() => {
|
||||||
setInitialCheckDone(true);
|
setInitialCheckDone(true);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -103,8 +103,15 @@ export default function ContactsPage() {
|
|||||||
const [isListResizing, setIsListResizing] = useState(false);
|
const [isListResizing, setIsListResizing] = useState(false);
|
||||||
const listDragStartWidth = useRef(384);
|
const listDragStartWidth = useRef(384);
|
||||||
|
|
||||||
// Check auth on mount
|
// Check auth on mount — skip when already authenticated so that navigating
|
||||||
|
// between routes doesn't retrigger checkAuth's transient `{ client: null,
|
||||||
|
// isLoading: true }` reset, which was flashing the spinner on every nav.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const state = useAuthStore.getState();
|
||||||
|
if (state.isAuthenticated && state.client) {
|
||||||
|
setInitialCheckDone(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth().finally(() => {
|
checkAuth().finally(() => {
|
||||||
setInitialCheckDone(true);
|
setInitialCheckDone(true);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -105,8 +105,15 @@ export default function FilesPage() {
|
|||||||
|
|
||||||
const detailResource = detailName ? resources.find(r => r.name === detailName) || null : null;
|
const detailResource = detailName ? resources.find(r => r.name === detailName) || null : null;
|
||||||
|
|
||||||
// Check auth on mount
|
// Check auth on mount — skip when already authenticated so that navigating
|
||||||
|
// between routes doesn't retrigger checkAuth's transient `{ client: null,
|
||||||
|
// isLoading: true }` reset, which was flashing the spinner on every nav.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const state = useAuthStore.getState();
|
||||||
|
if (state.isAuthenticated && state.client) {
|
||||||
|
setInitialCheckDone(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth().finally(() => {
|
checkAuth().finally(() => {
|
||||||
setInitialCheckDone(true);
|
setInitialCheckDone(true);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -455,8 +455,15 @@ export default function Home() {
|
|||||||
document.title = title;
|
document.title = title;
|
||||||
}, [showComposer, composerMode, selectedEmail, selectedMailbox, mailboxes, t, appName]);
|
}, [showComposer, composerMode, selectedEmail, selectedMailbox, mailboxes, t, appName]);
|
||||||
|
|
||||||
// Check auth on mount
|
// Check auth on mount — skip when already authenticated so that navigating
|
||||||
|
// between routes doesn't retrigger checkAuth's transient `{ client: null,
|
||||||
|
// isLoading: true }` reset, which was flashing the spinner on every nav.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const state = useAuthStore.getState();
|
||||||
|
if (state.isAuthenticated && state.client) {
|
||||||
|
setInitialCheckDone(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth().finally(() => {
|
checkAuth().finally(() => {
|
||||||
setInitialCheckDone(true);
|
setInitialCheckDone(true);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -179,7 +179,15 @@ export default function SettingsPage() {
|
|||||||
const [isResizing, setIsResizing] = useState(false);
|
const [isResizing, setIsResizing] = useState(false);
|
||||||
const dragStartWidth = useRef(256);
|
const dragStartWidth = useRef(256);
|
||||||
|
|
||||||
|
// Check auth on mount — skip when already authenticated so that navigating
|
||||||
|
// between routes doesn't retrigger checkAuth's transient `{ client: null,
|
||||||
|
// isLoading: true }` reset, which was flashing the spinner on every nav.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const state = useAuthStore.getState();
|
||||||
|
if (state.isAuthenticated && state.client) {
|
||||||
|
setInitialCheckDone(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth().finally(() => {
|
checkAuth().finally(() => {
|
||||||
setInitialCheckDone(true);
|
setInitialCheckDone(true);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user