Add peer support functionality and UI
This commit is contained in:
parent
2b55ca4104
commit
1b8dacf92a
11 changed files with 1159 additions and 35 deletions
|
|
@ -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,
|
||||
};
|
||||
};
|
||||
|
|
|
|||
16
app/composables/usePeerSupport.js
Normal file
16
app/composables/usePeerSupport.js
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
export const usePeerSupport = () => {
|
||||
const updateSettings = async (settings) => {
|
||||
return await $fetch('/api/members/me/peer-support', {
|
||||
method: 'PATCH',
|
||||
body: settings
|
||||
});
|
||||
};
|
||||
|
||||
const getSupporters = async (topic) => {
|
||||
return await $fetch('/api/peer-support', {
|
||||
query: topic ? { topic } : {}
|
||||
});
|
||||
};
|
||||
|
||||
return { updateSettings, getSupporters };
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue