aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/FlowTable/FlowTableHead.jsx
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2016-06-10 12:03:56 -0700
committerMaximilian Hils <git@maximilianhils.com>2016-06-10 12:03:56 -0700
commit0b241a1da71ef9eb7632fc0e32abcf061dcbd217 (patch)
tree703f1a5ff9d9c00b4bc36c5e4ded4583af6b87c3 /web/src/js/components/FlowTable/FlowTableHead.jsx
parent11fb21719179f243b9f2a069cba42c1d7f3722c0 (diff)
parentc33df55919cf2238deff34b22856f8304e6279e3 (diff)
downloadmitmproxy-0b241a1da71ef9eb7632fc0e32abcf061dcbd217.tar.gz
mitmproxy-0b241a1da71ef9eb7632fc0e32abcf061dcbd217.tar.bz2
mitmproxy-0b241a1da71ef9eb7632fc0e32abcf061dcbd217.zip
Merge remote-tracking branch 'jason/master'
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)