Fix member directory display in admin and board views - properly handle API response structure
Build And Push Image / docker (push) Successful in 2m12s
Details
Build And Push Image / docker (push) Successful in 2m12s
Details
This commit is contained in:
parent
f84adeff21
commit
a41a483de5
|
|
@ -467,11 +467,14 @@ const loadMembers = async () => {
|
|||
loading.value = true;
|
||||
try {
|
||||
// Fetch members from API
|
||||
const { data } = await $fetch('/api/members');
|
||||
const response = await $fetch('/api/members');
|
||||
|
||||
if (data?.members) {
|
||||
// Check for both possible response structures
|
||||
const membersList = response?.data?.list || response?.data?.members || response?.list || [];
|
||||
|
||||
if (membersList && membersList.length > 0) {
|
||||
// Transform the data to match our interface
|
||||
members.value = data.members.map((member: any) => ({
|
||||
members.value = membersList.map((member: any) => ({
|
||||
member_id: member.Id || member.id,
|
||||
first_name: member.first_name,
|
||||
last_name: member.last_name,
|
||||
|
|
@ -513,10 +516,26 @@ const loadMembers = async () => {
|
|||
}).length,
|
||||
renewalDue: members.value.filter(m => m.dues_status === 'Due' || m.dues_status === 'Overdue').length
|
||||
};
|
||||
} else {
|
||||
console.log('No members found in response:', response);
|
||||
members.value = [];
|
||||
stats.value = {
|
||||
total: 0,
|
||||
active: 0,
|
||||
newThisMonth: 0,
|
||||
renewalDue: 0
|
||||
};
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading members:', error);
|
||||
// Keep empty array if load fails
|
||||
members.value = [];
|
||||
stats.value = {
|
||||
total: 0,
|
||||
active: 0,
|
||||
newThisMonth: 0,
|
||||
renewalDue: 0
|
||||
}
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -530,11 +530,14 @@ const loadMembers = async () => {
|
|||
loading.value = true;
|
||||
try {
|
||||
// Fetch members from API
|
||||
const { data } = await $fetch('/api/members');
|
||||
const response = await $fetch('/api/members');
|
||||
|
||||
if (data?.members) {
|
||||
// Check for both possible response structures
|
||||
const membersList = response?.data?.list || response?.data?.members || response?.list || [];
|
||||
|
||||
if (membersList && membersList.length > 0) {
|
||||
// Transform the data to match our interface
|
||||
members.value = data.members.map((member: any) => ({
|
||||
members.value = membersList.map((member: any) => ({
|
||||
id: member.Id || member.id,
|
||||
memberId: member.member_id || `MUSA-${String(member.Id).padStart(4, '0')}`,
|
||||
firstName: member.first_name,
|
||||
|
|
@ -566,10 +569,14 @@ const loadMembers = async () => {
|
|||
});
|
||||
|
||||
console.log(`[board-members] Loaded ${members.value.length} members from API, sorted by last name`);
|
||||
} else {
|
||||
console.log('[board-members] No members found in response:', response);
|
||||
members.value = [];
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading members:', error);
|
||||
// Keep empty array if load fails
|
||||
members.value = []
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue