aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/Header.jsx
diff options
context:
space:
mode:
authorJason <jason.daurus@gmail.com>2016-06-14 23:52:00 +0800
committerJason <jason.daurus@gmail.com>2016-06-17 04:37:57 +0800
commite5bf1e930a5b6ba0b3300b02daf792d65d795202 (patch)
treef032716e6f31d204ee3b781279c5a9e8444e1e49 /web/src/js/components/Header.jsx
parent1fc2db85fa339f9b134d45c15d2ad4cf3d681070 (diff)
downloadmitmproxy-e5bf1e930a5b6ba0b3300b02daf792d65d795202.tar.gz
mitmproxy-e5bf1e930a5b6ba0b3300b02daf792d65d795202.tar.bz2
mitmproxy-e5bf1e930a5b6ba0b3300b02daf792d65d795202.zip
[web] FlowView and ContentView
Diffstat (limited to 'web/src/js/components/Header.jsx')
-rw-r--r--web/src/js/components/Header.jsx67
1 files changed, 67 insertions, 0 deletions
diff --git a/web/src/js/components/Header.jsx b/web/src/js/components/Header.jsx
new file mode 100644
index 00000000..93ca5154
--- /dev/null
+++ b/web/src/js/components/Header.jsx
@@ -0,0 +1,67 @@
+import React, { Component, PropTypes } from 'react'
+import { connect } from 'react-redux'
+import classnames from 'classnames'
+import { toggleEventLogVisibility } from '../ducks/eventLog'
+import MainMenu from './Header/MainMenu'
+import ViewMenu from './Header/ViewMenu'
+import OptionMenu from './Header/OptionMenu'
+import FileMenu from './Header/FileMenu'
+import FlowMenu from './Header/FlowMenu'
+import {setActiveMenu} from '../ducks/ui.js'
+
+class Header extends Component {
+ static entries = [MainMenu, ViewMenu, OptionMenu]
+
+ static propTypes = {
+ settings: PropTypes.object.isRequired,
+ }
+
+ handleClick(active, e) {
+ e.preventDefault()
+ this.props.setActiveMenu(active.title)
+ // this.props.updateLocation(active.route)
+ // this.setState({ active })
+ }
+
+ render() {
+ const { settings, updateLocation, query, selectedFlow, activeMenu} = this.props
+
+ let entries = [...Header.entries]
+ if(selectedFlow)
+ entries.push(FlowMenu)
+
+ const Active = _.find(entries, (e) => e.title == activeMenu)
+
+ return (
+ <header>
+ <nav className="nav-tabs nav-tabs-lg">
+ <FileMenu/>
+ {entries.map(Entry => (
+ <a key={Entry.title}
+ href="#"
+ className={classnames({ active: Entry === Active})}
+ onClick={e => this.handleClick(Entry, e)}>
+ {Entry.title}
+ </a>
+ ))}
+ </nav>
+ <div className="menu">
+ <Active
+ settings={settings}
+ updateLocation={updateLocation}
+ query={query}
+ />
+ </div>
+ </header>
+ )
+ }
+}
+export default connect(
+ (state) => ({
+ selectedFlow: state.flows.selected[0],
+ activeMenu: state.ui.activeMenu
+ }),
+ {
+ setActiveMenu,
+ }
+)(Header)