one click mobile nav

This commit is contained in:
ntr 2019-05-30 16:45:35 +10:00
parent 70dcf26d58
commit f3a673d7d1
6 changed files with 26 additions and 16 deletions

View File

@ -571,5 +571,6 @@ main .top button {
} }
/* Mobile Nav*/ /* Mobile Nav*/
#toggle-nav { display: none; } #nav-btn {
#toggle-nav-label { display: none; } display: none;
}

View File

@ -21,8 +21,14 @@
display: none; display: none;
} }
#nav-btn {
display: inline-block;
margin: 0 0.5em;
}
#mnml.nav-visible nav { #mnml.nav-visible nav {
display: grid; display: block;
grid-area: main;
} }
#mnml.nav-visible main { #mnml.nav-visible main {

View File

@ -10,7 +10,7 @@ function pingColour(ping) {
} }
function renderHeader(args) { function renderHeader(args) {
const { account, ping } = args; const { account, ping, setShowNav, showNav } = args;
const accountStatus = account const accountStatus = account
? (<div className="header-status"> ? (<div className="header-status">
@ -23,6 +23,7 @@ function renderHeader(args) {
return ( return (
<header> <header>
<h1 className="header-title"> <h1 className="header-title">
<i id="nav-btn" onClick={() => setShowNav(!showNav)} className="fa fa-bars"></i>
mnml.gg mnml.gg
</h1> </h1>
{accountStatus} {accountStatus}

View File

@ -1,11 +1,15 @@
const { connect } = require('preact-redux'); const { connect } = require('preact-redux');
const Header = require('./header.component'); const Header = require('./header.component');
const actions = require('./../actions');
const addState = connect( const addState = connect(
({ account, ping }) => { ({ account, ping, showNav }) => {
return { account, ping }; return { account, ping, showNav };
}, },
dispatch => ({
setShowNav: v => dispatch(actions.setShowNav(v)),
})
); );
module.exports = addState(Header); module.exports = addState(Header);

View File

@ -1,21 +1,16 @@
const preact = require('preact'); const preact = require('preact');
const { connect } = require('preact-redux'); const { connect } = require('preact-redux');
const actions = require('./../actions');
const Header = require('./header.container'); const Header = require('./header.container');
const Main = require('./main'); const Main = require('./main');
const Nav = require('./nav'); const Nav = require('./nav');
const addState = connect( const addState = connect(
state => ({ showNav: state.showNav }), state => ({ showNav: state.showNav })
dispatch => ({
setShowNav: v => dispatch(actions.setShowNav(v)),
})
); );
const Mnml = ({ showNav, setShowNav }) => const Mnml = ({ showNav, setShowNav }) =>
<div id="mnml" className={showNav ? 'nav-visible' : ''}> <div id="mnml" className={showNav ? 'nav-visible' : ''}>
<i onClick={() => setShowNav(!showNav)} className="fa fa-bars"></i>
<Header /> <Header />
<Nav /> <Nav />
<Main /> <Main />

View File

@ -15,7 +15,6 @@ const addState = connect(
team, team,
constructs, constructs,
game, game,
showNav,
} = state; } = state;
function sendInstanceState(instance) { function sendInstanceState(instance) {
@ -32,7 +31,6 @@ const addState = connect(
team, team,
constructs, constructs,
game, game,
showNav,
sendInstanceState, sendInstanceState,
sendAccountInstances, sendAccountInstances,
}; };
@ -52,10 +50,15 @@ const addState = connect(
return dispatch(actions.setNav(place)); return dispatch(actions.setNav(place));
} }
function hideNav() {
return dispatch(actions.setShowNav(false));
}
return { return {
setTestGame, setTestGame,
setTestInstance, setTestInstance,
setNav, setNav,
hideNav,
}; };
} }
); );
@ -70,11 +73,11 @@ function Nav(args) {
constructs, constructs,
instances, instances,
game, game,
showNav,
setTestGame, setTestGame,
setTestInstance, setTestInstance,
setNav, setNav,
hideNav,
} = args; } = args;
function navTo(p) { function navTo(p) {
@ -110,7 +113,7 @@ function Nav(args) {
: null; : null;
return ( return (
<nav> <nav onClick={hideNav} >
<h2>Team</h2> <h2>Team</h2>
{teamElements} {teamElements}
<h2>Instances</h2> <h2>Instances</h2>