diff --git a/src/components/DataTable.vue b/src/components/DataTable.vue index 6bb434e1..ada2e9ec 100644 --- a/src/components/DataTable.vue +++ b/src/components/DataTable.vue @@ -109,9 +109,8 @@ if (cellValue === undefined || cellValue === null) return false; if (Array.isArray(filter.value)) { - return filter.value.some((val) => - String(cellValue).toLowerCase().includes(String(val).toLowerCase()) - ); + // assume filter dropdown multi select + return filter.value.some((val) => String(cellValue).toLowerCase() === String(val).toLowerCase()); } else { return String(cellValue).toLowerCase().includes(String(filter.value).toLowerCase()); } @@ -122,7 +121,12 @@ if (filters.value && Array.isArray(filters.value) && filters.value.length > 0) { filters.value.forEach((filter) => { - if (filter.value && (!Array.isArray(filter.value) || filter.value.length > 0)) { + if (!filter.value) { + return; + } + if (filter.filterFn) { + result = result.filter((row) => filter.filterFn(row, filter)); + } else if (!Array.isArray(filter.value) || filter.value.length > 0) { result = result.filter((row) => applyFilter(row, filter)); } }); diff --git a/src/stores/friend.js b/src/stores/friend.js index e3891caf..c7643dd4 100644 --- a/src/stores/friend.js +++ b/src/stores/friend.js @@ -65,9 +65,7 @@ export const useFriendStore = defineStore('Friend', () => { filters: [ { prop: 'type', - value: [], - filterFn: (row, filter) => - filter.value.some((v) => v === row.type) + value: [] }, { prop: 'displayName', diff --git a/src/stores/notification.js b/src/stores/notification.js index 5faf2749..c9f2f673 100644 --- a/src/stores/notification.js +++ b/src/stores/notification.js @@ -59,9 +59,7 @@ export const useNotificationStore = defineStore('Notification', () => { filters: [ { prop: 'type', - value: [], - filterFn: (row, filter) => - filter.value.some((v) => v === row.type) + value: [] }, { prop: ['senderUsername', 'message'], diff --git a/src/stores/photon.js b/src/stores/photon.js index b99e2802..558e9242 100644 --- a/src/stores/photon.js +++ b/src/stores/photon.js @@ -98,9 +98,7 @@ export const usePhotonStore = defineStore('Photon', () => { }, { prop: 'type', - value: [], - filterFn: (row, filter) => - filter.value.some((v) => v === row.type) + value: [] } ], tableProps: { @@ -123,9 +121,7 @@ export const usePhotonStore = defineStore('Photon', () => { }, { prop: 'type', - value: [], - filterFn: (row, filter) => - filter.value.some((v) => v === row.type) + value: [] } ], tableProps: { diff --git a/src/views/Moderation/Moderation.vue b/src/views/Moderation/Moderation.vue index 623832e1..46369cd1 100644 --- a/src/views/Moderation/Moderation.vue +++ b/src/views/Moderation/Moderation.vue @@ -114,8 +114,7 @@ const filters = ref([ { prop: 'type', - value: [], - filterFn: (row, filter) => filter.value.some((v) => v === row.type) + value: [] }, { prop: ['sourceDisplayName', 'targetDisplayName'],