diff --git a/src/vueLib/tables/members/MembersTable.ts b/src/vueLib/tables/members/MembersTable.ts index a42e2c6..b60c72e 100644 --- a/src/vueLib/tables/members/MembersTable.ts +++ b/src/vueLib/tables/members/MembersTable.ts @@ -306,6 +306,11 @@ export function useMemberTable() { if (typeof value === 'number') { return keys.includes(value.toString()); } + if (typeof value === 'object') { + if ('name' in value) { + return keys.includes(value.name); + } + } if (typeof value === 'string') { return keys.includes(value); } diff --git a/src/vueLib/tables/members/MembersTable.vue b/src/vueLib/tables/members/MembersTable.vue index fb25a49..88a57af 100644 --- a/src/vueLib/tables/members/MembersTable.vue +++ b/src/vueLib/tables/members/MembersTable.vue @@ -76,12 +76,8 @@ v-on:clear="selectedColumnOptions = []" v-model:column-filter="selectedColumnFilter" v-model:column-option="selectedColumnOptions" - @update:column-filter=" - filterMembers(selectedColumnFilter, ...(selectedColumnOptions || [])) - " - @update:column-option=" - filterMembers(selectedColumnFilter, ...(selectedColumnOptions || [])) - " + @update:column-filter="filterMembers" + @update:column-option="filterMembers" />
@@ -352,7 +348,14 @@ function setColumnOptions(columnName: string) { const values = allMembers.value .map((e) => e[columnName as keyof Member]) // could be undefined .filter((v): v is string | number => v !== null && v !== undefined) - .map((v) => String(v)); + .map((v) => { + if (typeof v === 'string') { + return v; + } else if (typeof v === 'object') { + const obj = v as Record; + return String(obj['name']); + } + }); const selection = [...new Set(values)]; @@ -364,9 +367,9 @@ function setColumnOptions(columnName: string) { return selection; } -async function filterMembers(field: string, ...keys: string[]) { - setNewFilter(field, ...keys); - setLocalPageDefaults(page.value, field, keys); +async function filterMembers() { + setNewFilter(selectedColumnFilter.value, ...(selectedColumnOptions.value || [])); + setLocalPageDefaults(page.value, selectedColumnFilter.value, selectedColumnOptions.value || []); await updateTable(); }