aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js
diff options
context:
space:
mode:
authorClemens <cle1000.cb@gmail.com>2016-06-15 00:19:33 +0200
committerClemens <cle1000.cb@gmail.com>2016-06-15 00:19:33 +0200
commit00b4abfe8362748c197a32f7150d8b38a37e3739 (patch)
tree0dba9d15f256169ef004e10fbcf4a31a2155a04f /web/src/js
parent003096b4cc4e268642eb842dbe94cd4439db1908 (diff)
downloadmitmproxy-00b4abfe8362748c197a32f7150d8b38a37e3739.tar.gz
mitmproxy-00b4abfe8362748c197a32f7150d8b38a37e3739.tar.bz2
mitmproxy-00b4abfe8362748c197a32f7150d8b38a37e3739.zip
add previous state to dispatch function
Diffstat (limited to 'web/src/js')
-rw-r--r--web/src/js/components/Header.js28
-rw-r--r--web/src/js/ducks/flows.js9
-rw-r--r--web/src/js/ducks/utils/view.js2
-rw-r--r--web/src/js/ducks/view.js11
4 files changed, 30 insertions, 20 deletions
diff --git a/web/src/js/components/Header.js b/web/src/js/components/Header.js
index f0cd3dcd..080f438a 100644
--- a/web/src/js/components/Header.js
+++ b/web/src/js/components/Header.js
@@ -11,8 +11,7 @@ import FlowMenu from './Header/FlowMenu'
import {setActiveMenu} from '../ducks/view'
class Header extends Component {
-
- static entries = [MainMenu, ViewMenu, OptionMenu, FlowMenu]
+ static entries = [MainMenu, ViewMenu, OptionMenu]
static propTypes = {
settings: PropTypes.object.isRequired,
@@ -27,29 +26,32 @@ class Header extends Component {
render() {
const { settings, updateLocation, query, selectedFlow, active_menu} = this.props
+
+ let entries = [...Header.entries]
+ if(selectedFlow)
+ entries.push(FlowMenu)
+
+ const Active = _.find(entries, (e) => e.title == active_menu)
+
return (
<header>
<nav className="nav-tabs nav-tabs-lg">
<FileMenu/>
- {Header.entries.map(Entry => (
+ {entries.map(Entry => (
<a key={Entry.title}
href="#"
- className={classnames({ active: Entry.title === active_menu, hidden: !selectedFlow && Entry === FlowMenu })}
+ className={classnames({ active: Entry === Active})}
onClick={e => this.handleClick(Entry, e)}>
{Entry.title}
</a>
))}
</nav>
<div className="menu">
- {Header.entries.map(Entry => (
- <div className={classnames({ hidden: Entry.title !== active_menu })}>
- <Entry
- settings={settings}
- updateLocation={updateLocation}
- query={query}
- />
- </div>
- ))}
+ <Active
+ settings={settings}
+ updateLocation={updateLocation}
+ query={query}
+ />
</div>
</header>
)
diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js
index f7a5538a..b877d3e4 100644
--- a/web/src/js/ducks/flows.js
+++ b/web/src/js/ducks/flows.js
@@ -101,9 +101,12 @@ export function setSort(sort){
}
}
export function selectFlow(flowId) {
- return {
- type: SELECT_FLOW,
- flowId
+ return (dispatch, getState) => {
+ dispatch({
+ type: SELECT_FLOW,
+ currentSelection: getState().flows.selected[0],
+ flowId
+ })
}
}
diff --git a/web/src/js/ducks/utils/view.js b/web/src/js/ducks/utils/view.js
index 2d23a39c..01d57b17 100644
--- a/web/src/js/ducks/utils/view.js
+++ b/web/src/js/ducks/utils/view.js
@@ -124,7 +124,7 @@ export function updateViewFilter(list, filterFn = defaultFilterFn, sortFn = defa
}
export function updateViewSort(list, sortFn = defaultSortFn) {
- let sorted = list.slice(0)
+ let sorted = [...list]
if (sortFn) {
sorted.sort(makeCompareFn(sortFn))
}
diff --git a/web/src/js/ducks/view.js b/web/src/js/ducks/view.js
index 2b6fe67d..b56561d0 100644
--- a/web/src/js/ducks/view.js
+++ b/web/src/js/ducks/view.js
@@ -1,3 +1,5 @@
+import ReduxThunk from 'redux-thunk'
+
import { SELECT_FLOW } from './flows'
const ACTIVE_MENU = 'ACTIVE_MENU'
@@ -13,10 +15,13 @@ export default function reducer(state = defaultState, action) {
active_menu: action.active_menu
}
case SELECT_FLOW:
- return{
- ...state,
- active_menu: action.flowId ? 'Flow' : 'Start'
+ if (!action.currentSelection != !action.flowId){
+ return{
+ ...state,
+ active_menu: action.flowId ? 'Flow' : (state.active_menu == 'Flow' ? 'Start' : state.active_menu)
+ }
}
+ return state
default:
return state
}