diff --git a/src/containers/BGroup/BGroup.js b/src/containers/BGroup/BGroup.js index 6528ed97a9a50ec1ec12778ee88c1ebefb98c361..75cfb04cd97d201553d3813972a1a9cbc21badfd 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,20 @@ class BGroup extends Component { columns: [ { Header: 'Address', + filterMethod: (filter, row) => ( + row._original.address_list.toLowerCase().indexOf( // eslint-disable-line + filter.value.toLowerCase() + ) !== -1 + ), + Filter: ({ filter, onChange }) => ( + onChange(event.target.value)} + /> + ), accessor: 'first_address', Cell: row => ( {row.value} @@ -314,12 +357,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 ? (