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;
|
loading.value = true;
|
||||||
try {
|
try {
|
||||||
// Fetch members from API
|
// 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
|
// 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,
|
member_id: member.Id || member.id,
|
||||||
first_name: member.first_name,
|
first_name: member.first_name,
|
||||||
last_name: member.last_name,
|
last_name: member.last_name,
|
||||||
|
|
@ -513,10 +516,26 @@ const loadMembers = async () => {
|
||||||
}).length,
|
}).length,
|
||||||
renewalDue: members.value.filter(m => m.dues_status === 'Due' || m.dues_status === 'Overdue').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) {
|
} catch (error) {
|
||||||
console.error('Error loading members:', error);
|
console.error('Error loading members:', error);
|
||||||
// Keep empty array if load fails
|
// Keep empty array if load fails
|
||||||
|
members.value = [];
|
||||||
|
stats.value = {
|
||||||
|
total: 0,
|
||||||
|
active: 0,
|
||||||
|
newThisMonth: 0,
|
||||||
|
renewalDue: 0
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -530,11 +530,14 @@ const loadMembers = async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
try {
|
try {
|
||||||
// Fetch members from API
|
// 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
|
// 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,
|
id: member.Id || member.id,
|
||||||
memberId: member.member_id || `MUSA-${String(member.Id).padStart(4, '0')}`,
|
memberId: member.member_id || `MUSA-${String(member.Id).padStart(4, '0')}`,
|
||||||
firstName: member.first_name,
|
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`);
|
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) {
|
} catch (error) {
|
||||||
console.error('Error loading members:', error);
|
console.error('Error loading members:', error);
|
||||||
// Keep empty array if load fails
|
// Keep empty array if load fails
|
||||||
|
members.value = []
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue