From 1911a18b15ee1301642553c700987aef097a25f2 Mon Sep 17 00:00:00 2001 From: Conrad Date: Thu, 25 Jan 2018 12:41:20 -0500 Subject: [PATCH 1/3] Add filters to all of the bgroup columns --- src/containers/BGroup/BGroup.js | 93 +++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/src/containers/BGroup/BGroup.js b/src/containers/BGroup/BGroup.js index 6528ed97..fae4a00e 100644 --- a/src/containers/BGroup/BGroup.js +++ b/src/containers/BGroup/BGroup.js @@ -279,7 +279,36 @@ class BGroup extends Component { render() { let { bGroupBuildings } = this.props.bGroup; + // A generic filter method that ensures that empty rows return false + const genericFilterMethod = (filter, row) => ( + row[filter.id] ? + row[filter.id].toLowerCase().indexOf( // eslint-disable-line + filter.value.toLowerCase() + ) !== -1 + : false + ); + + const utilityBillFilterMethod = (filter, row) => { + if (filter.value === 'all') { + return true; + } + if (filter.value === 'submitted') { + return row[filter.id]; + } + return !row[filter.id]; + }; + const utilityBillFilter = ({ filter, onChange }) => ( + + ); const columns = [{ Header: () => ( @@ -294,6 +323,11 @@ class BGroup extends Component { columns: [ { Header: 'Address', + filterMethod: (filter, row) => ( + row._original.address_list.toLowerCase().indexOf( // eslint-disable-line + filter.value.toLowerCase() + ) !== -1 + ), accessor: 'first_address', Cell: row => ( {row.value} @@ -314,12 +348,25 @@ class BGroup extends Component { columns: [ { Header: 'Account', + filterMethod: genericFilterMethod, accessor: 'contact_account', }, { Header: 'Parent Account', + filterMethod: genericFilterMethod, accessor: 'contact_parent_account', }, { Header: 'Contact Names', + filterMethod: (filter, row) => { + // Handle this one differently because it's a list + if (row[filter.id]) { + return row[filter.id].reduce((acc, val) => ( + acc || val.toLowerCase().indexOf( + filter.value.toLowerCase() + ) !== -1 + ), false); + } + return false; + }, accessor: 'contact_names', Cell: row => (row.value ? (