diff options
Diffstat (limited to 'src/components/Mixins')
-rw-r--r-- | src/components/Mixins/TableFilterMixin.js | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/components/Mixins/TableFilterMixin.js b/src/components/Mixins/TableFilterMixin.js index 58e70c57..7cb7007d 100644 --- a/src/components/Mixins/TableFilterMixin.js +++ b/src/components/Mixins/TableFilterMixin.js @@ -3,13 +3,19 @@ import { includes } from 'lodash'; const TableFilterMixin = { methods: { getFilteredTableData(tableData = [], filters = []) { - if (filters.length === 0) return tableData; - // will return all items that match - // any of the filter tags (not all) + const filterItems = filters.reduce((arr, filter) => { + return [...arr, ...filter.values]; + }, []); + // If no filters are active, then return all table data + if (filterItems.length === 0) return tableData; + + // Check if row property value is included in list of + // active filters return tableData.filter(row => { let returnRow = false; - for (const filter of filters) { - if (includes(row, filter)) { + for (const { key, values } of filters) { + const rowProperty = row[key]; + if (rowProperty && includes(values, rowProperty)) { returnRow = true; break; } |