From e015558190def5ce3ed08263135189932a6c6bbe Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Thu, 3 Jan 2019 12:16:06 -0500 Subject: [PATCH] use constructor bound methods for data toolbar --- .../DataListToolbar/DataListToolbar.jsx | 37 +++++++++++++------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/components/DataListToolbar/DataListToolbar.jsx b/src/components/DataListToolbar/DataListToolbar.jsx index 51bf9f782c..46b8189825 100644 --- a/src/components/DataListToolbar/DataListToolbar.jsx +++ b/src/components/DataListToolbar/DataListToolbar.jsx @@ -43,17 +43,24 @@ class DataListToolbar extends React.Component { searchKey: sortedColumnKey, searchValue: '', }; + + this.handleSearchInputChange = this.handleSearchInputChange.bind(this); + this.onSortDropdownToggle = this.onSortDropdownToggle.bind(this); + this.onSortDropdownSelect = this.onSortDropdownSelect.bind(this); + this.onSearch = this.onSearch.bind(this); + this.onSearchDropdownToggle = this.onSearchDropdownToggle.bind(this); + this.onSearchDropdownSelect = this.onSearchDropdownSelect.bind(this); } - handleSearchInputChange = searchValue => { + handleSearchInputChange (searchValue) { this.setState({ searchValue }); - }; + } - onSortDropdownToggle = isSortDropdownOpen => { + onSortDropdownToggle (isSortDropdownOpen) { this.setState({ isSortDropdownOpen }); - }; + } - onSortDropdownSelect = ({ target }) => { + onSortDropdownSelect ({ target }) { const { columns, onSort, sortOrder } = this.props; const [{ key }] = columns.filter(({ name }) => name === target.innerText); @@ -61,27 +68,33 @@ class DataListToolbar extends React.Component { this.setState({ isSortDropdownOpen: false }); onSort(key, sortOrder); - }; + } - onSearchDropdownToggle = isSearchDropdownOpen => { + onSearchDropdownToggle (isSearchDropdownOpen) { this.setState({ isSearchDropdownOpen }); - }; + } - onSearchDropdownSelect = ({ target }) => { + onSearchDropdownSelect ({ target }) { const { columns } = this.props; const targetName = target.innerText; const [{ key }] = columns.filter(({ name }) => name === targetName); this.setState({ isSearchDropdownOpen: false, searchKey: key }); - }; + } + + onSearch () { + const { searchValue } = this.state; + const { onSearch } = this.props; + + onSearch(searchValue); + } render () { const { up } = DropdownPosition; const { columns, isAllSelected, - onSearch, onSelectAll, onSort, sortedColumnKey, @@ -175,7 +188,7 @@ class DataListToolbar extends React.Component {