diff options
Diffstat (limited to 'web/src/js')
| -rw-r--r-- | web/src/js/components/Header.js | 28 | ||||
| -rw-r--r-- | web/src/js/ducks/flows.js | 9 | ||||
| -rw-r--r-- | web/src/js/ducks/utils/view.js | 2 | ||||
| -rw-r--r-- | web/src/js/ducks/view.js | 11 | 
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      } | 
