diff options
| author | Aldo Cortesi <aldo@corte.si> | 2016-06-11 16:08:14 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-11 16:08:14 +1200 |
| commit | 227d762cace09bc315e57644da2135480bf32cb9 (patch) | |
| tree | dd1b458e77d79a8f7867e31f7a352c19e586e129 /web/src/js/components/FlowTable/FlowTableHead.jsx | |
| parent | 250b47487aa071e61f0bd2960992e80222103a3a (diff) | |
| parent | 0b241a1da71ef9eb7632fc0e32abcf061dcbd217 (diff) | |
| download | mitmproxy-227d762cace09bc315e57644da2135480bf32cb9.tar.gz mitmproxy-227d762cace09bc315e57644da2135480bf32cb9.tar.bz2 mitmproxy-227d762cace09bc315e57644da2135480bf32cb9.zip | |
Merge branch 'master' into toxfiddle
Diffstat (limited to 'web/src/js/components/FlowTable/FlowTableHead.jsx')
| -rw-r--r-- | web/src/js/components/FlowTable/FlowTableHead.jsx | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/web/src/js/components/FlowTable/FlowTableHead.jsx b/web/src/js/components/FlowTable/FlowTableHead.jsx new file mode 100644 index 00000000..a46219d1 --- /dev/null +++ b/web/src/js/components/FlowTable/FlowTableHead.jsx @@ -0,0 +1,43 @@ +import React, { PropTypes } from 'react' +import { bindActionCreators } from 'redux' +import { connect } from 'react-redux' +import classnames from 'classnames' +import columns from './FlowColumns' + +import { setSort } from "../../ducks/flows" + +FlowTableHead.propTypes = { + onSort: PropTypes.func.isRequired, + sortDesc: React.PropTypes.bool.isRequired, + sortColumn: React.PropTypes.string, +} + +function FlowTableHead({ sortColumn, sortDesc, onSort }) { + const sortType = sortDesc ? 'sort-desc' : 'sort-asc' + + return ( + <tr> + {columns.map(Column => ( + <th className={classnames(Column.headerClass, sortColumn === Column.name && sortType)} + key={Column.name} + onClick={() => onClick(Column)}> + {Column.headerName} + </th> + ))} + </tr> + ) + + function onClick(Column) { + onSort({ sortColumn: Column.name, sortDesc: Column.name !== sortColumn ? false : !sortDesc }) + } +} + +export default connect( + state => ({ + sortDesc: state.flows.sort.sortDesc, + sortColumn: state.flows.sort.sortColumn, + }), + dispatch => bindActionCreators({ + onSort: setSort, + }, dispatch) +)(FlowTableHead) |
