Fix duplicate /api/auth/member call and add request deduplication

Remove redundant checkMemberStatus() from coming-soon page since the
auth-init plugin already handles it. Add in-flight request deduplication
to prevent concurrent calls from any source. Strip debug console.logs.
This commit is contained in:
Jennie Robinson Faber 2026-03-19 15:04:04 +00:00
parent 52bb17e25d
commit 78c592c13a
3 changed files with 22 additions and 40 deletions

View file

@ -1,3 +1,5 @@
let pendingRequest = null;
export const useAuth = () => {
const memberData = useState("auth.member", () => null);
@ -6,29 +8,24 @@ export const useAuth = () => {
const isMember = computed(() => !!memberData.value);
const checkMemberStatus = async () => {
console.log("🔍 checkMemberStatus called");
console.log(" - Current memberData:", !!memberData.value);
try {
console.log(" - Making API call to /api/auth/member...");
const response = await $fetch("/api/auth/member");
console.log(" - API response received:", {
email: response.email,
id: response.id,
});
memberData.value = response;
console.log(" - ✅ Member authenticated successfully");
return true;
} catch (error) {
console.error(
" - ❌ Failed to fetch member status:",
error.statusCode,
error.statusMessage,
);
memberData.value = null;
console.log(" - Cleared memberData");
return false;
if (pendingRequest) {
return pendingRequest;
}
pendingRequest = (async () => {
try {
const response = await $fetch("/api/auth/member");
memberData.value = response;
return true;
} catch (error) {
memberData.value = null;
return false;
} finally {
pendingRequest = null;
}
})();
return pendingRequest;
};
const logout = async () => {