diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-18 11:48:22 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-18 11:48:22 +0200 |
| commit | eb3030ed0ad5aa93b99d237867480c989369930c (patch) | |
| tree | bb384c83553fb2a4e94752920d90928155ac8af2 /app/client/common | |
| parent | f7029fad191c34ffbb01a77c1c046dfc053bbd86 (diff) | |
waaaay better nav!
Diffstat (limited to 'app/client/common')
| -rw-r--r-- | app/client/common/header.component.js | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/app/client/common/header.component.js b/app/client/common/header.component.js index 85e1895..11eb761 100644 --- a/app/client/common/header.component.js +++ b/app/client/common/header.component.js @@ -7,19 +7,26 @@ import * as systemActions from '../system/system.actions' import modules from '../modules' +function NavLink(props){ + if (! props.to) { + return <span>{props.children}</span> + } + let children = props.to === props.location.pathname ? <b>{props.children}</b> : props.children + return ( + <span><Link to={props.to}>{children}</Link></span> + ) +} + function Header(props){ - const { site, app, fps, playing, actions, location } = props + const { site, app, fps, playing, actions, location, history } = props const tool_list = Object.keys(modules).map((name, i) => { const label = name.replace(/_/, " ") return <option value={name} key={i}>{label}</option> }) const tool = modules[app.tool] const links = tool.links().map((link,i) => { - let name = link.url === location.pathname ? <b>{link.name}</b> : link.name return ( - <span key={i}> - {link.url ? <Link to={link.url}>{name}</Link> : name} - </span> + <NavLink key={i} location={location} to={link.url}>{link.name}</NavLink> ) }) return ( @@ -27,12 +34,20 @@ function Header(props){ {playing && <span>{fps} fps</span>} <span>{links}</span> <span> - <select onChange={e => actions.changeTool(e.target.value)} value={app.tool}> + <select onChange={e => { + let path = window.location.pathname.split("/") + path.shift() + console.log(path) + if (path[0] in modules && path[1]) { + history.push('/' + e.target.value + '/' + path[1] + '/') + } + actions.changeTool(e.target.value, true) + }} value={app.tool}> {tool_list} </select> </span> - <span><Link to="/system">system</Link></span> - <span><Link to="/dashboard">dashboard</Link></span> + <NavLink location={location} to="/system">system</NavLink> + <NavLink location={location} to="/dashboard">dashboard</NavLink> <b>{site.name} cortex</b> </header> ) |
