Fix member directory display in admin and board views - properly handle API response structure
Build And Push Image / docker (push) Successful in 2m12s Details

This commit is contained in:
Matt 2025-09-04 13:49:34 +02:00
parent f84adeff21
commit a41a483de5
2 changed files with 32 additions and 6 deletions

View File

@ -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;
}

View File

@ -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;
}