Add peer support functionality and UI

This commit is contained in:
Jennie Robinson Faber 2025-10-06 11:29:47 +01:00
parent 2b55ca4104
commit 1b8dacf92a
11 changed files with 1159 additions and 35 deletions

View file

@ -1,46 +1,54 @@
export const useAuth = () => {
const memberData = useState('auth.member', () => null)
const isAuthenticated = computed(() => !!memberData.value)
const isMember = computed(() => !!memberData.value)
const memberData = useState("auth.member", () => null);
const isAuthenticated = computed(() => !!memberData.value);
const isMember = computed(() => !!memberData.value);
const checkMemberStatus = async () => {
console.log('🔍 checkMemberStatus called')
console.log(' - Current memberData:', !!memberData.value)
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
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
console.error(
" - ❌ Failed to fetch member status:",
error.statusCode,
error.statusMessage,
);
memberData.value = null;
console.log(" - Cleared memberData");
return false;
}
}
};
const logout = async () => {
try {
await $fetch('/api/auth/logout', {
method: 'POST'
})
memberData.value = null
await navigateTo('/')
await $fetch("/api/auth/logout", {
method: "POST",
});
memberData.value = null;
await navigateTo("/");
} catch (error) {
console.error('Logout failed:', error)
console.error("Logout failed:", error);
}
}
};
return {
isAuthenticated: readonly(isAuthenticated),
isMember: readonly(isMember),
memberData: readonly(memberData),
checkMemberStatus,
logout
}
}
fetchMember: checkMemberStatus, // Alias for consistency
logout,
};
};