aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/FlowView/Nav.jsx
diff options
context:
space:
mode:
authorJason <jason.daurus@gmail.com>2016-06-17 21:54:31 +0800
committerJason <jason.daurus@gmail.com>2016-06-17 21:54:31 +0800
commite4addd60f1ffbb445a8c05f3fb2b6c6e61bd7b93 (patch)
treecb5e3be10e8bb813c1ade3aa88204460317d2548 /web/src/js/components/FlowView/Nav.jsx
parent16a28eca258e07d45c7e2a8ee95368d4eb077d4d (diff)
parent9c6199db9be34fad18eaedb86463333671ae190a (diff)
downloadmitmproxy-e4addd60f1ffbb445a8c05f3fb2b6c6e61bd7b93.tar.gz
mitmproxy-e4addd60f1ffbb445a8c05f3fb2b6c6e61bd7b93.tar.bz2
mitmproxy-e4addd60f1ffbb445a8c05f3fb2b6c6e61bd7b93.zip
Merge branch 'master' into websocket
Conflicts: mitmproxy/web/static/app.css mitmproxy/web/static/app.js web/src/js/components/ProxyApp.jsx
Diffstat (limited to 'web/src/js/components/FlowView/Nav.jsx')
-rw-r--r--web/src/js/components/FlowView/Nav.jsx57
1 files changed, 57 insertions, 0 deletions
diff --git a/web/src/js/components/FlowView/Nav.jsx b/web/src/js/components/FlowView/Nav.jsx
new file mode 100644
index 00000000..386c3a6c
--- /dev/null
+++ b/web/src/js/components/FlowView/Nav.jsx
@@ -0,0 +1,57 @@
+import React, { PropTypes } from 'react'
+import classnames from 'classnames'
+import { FlowActions } from '../../actions.js'
+
+NavAction.propTypes = {
+ icon: PropTypes.string.isRequired,
+ title: PropTypes.string.isRequired,
+ onClick: PropTypes.func.isRequired,
+}
+
+function NavAction({ icon, title, onClick }) {
+ return (
+ <a title={title}
+ href="#"
+ className="nav-action"
+ onClick={event => {
+ event.preventDefault()
+ onClick(event)
+ }}>
+ <i className={`fa fa-fw ${icon}`}></i>
+ </a>
+ )
+}
+
+Nav.propTypes = {
+ flow: PropTypes.object.isRequired,
+ active: PropTypes.string.isRequired,
+ tabs: PropTypes.array.isRequired,
+ onSelectTab: PropTypes.func.isRequired,
+}
+
+export default function Nav({ flow, active, tabs, onSelectTab }) {
+ return (
+ <nav className="nav-tabs nav-tabs-sm">
+ {tabs.map(tab => (
+ <a key={tab}
+ href="#"
+ className={classnames({ active: active === tab })}
+ onClick={event => {
+ event.preventDefault()
+ onSelectTab(tab)
+ }}>
+ {_.capitalize(tab)}
+ </a>
+ ))}
+ <NavAction title="[d]elete flow" icon="fa-trash" onClick={() => FlowActions.delete(flow)} />
+ <NavAction title="[D]uplicate flow" icon="fa-copy" onClick={() => FlowActions.duplicate(flow)} />
+ <NavAction disabled title="[r]eplay flow" icon="fa-repeat" onClick={() => FlowActions.replay(flow)} />
+ {flow.intercepted && (
+ <NavAction title="[a]ccept intercepted flow" icon="fa-play" onClick={() => FlowActions.accept(flow)} />
+ )}
+ {flow.modified && (
+ <NavAction title="revert changes to flow [V]" icon="fa-history" onClick={() => FlowActions.revert(flow)} />
+ )}
+ </nav>
+ )
+}