aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/FlowTable/FlowTableHead.jsx
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@corte.si>2016-06-11 16:08:14 +1200
committerGitHub <noreply@github.com>2016-06-11 16:08:14 +1200
commit227d762cace09bc315e57644da2135480bf32cb9 (patch)
treedd1b458e77d79a8f7867e31f7a352c19e586e129 /web/src/js/components/FlowTable/FlowTableHead.jsx
parent250b47487aa071e61f0bd2960992e80222103a3a (diff)
parent0b241a1da71ef9eb7632fc0e32abcf061dcbd217 (diff)
downloadmitmproxy-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.jsx43
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)