0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-13 08:42:42 +00:00

Added new navitems

This commit is contained in:
Scott Tolksdorf
2016-12-27 21:10:03 -05:00
parent 41303e6918
commit 924b398768
5 changed files with 41 additions and 31 deletions

View File

@@ -0,0 +1,9 @@
const React = require('react');
const Nav = require('naturalcrit/nav/nav.jsx');
const Store = require('homebrewery/brew.store.js');
module.exports = Store.createSmartComponent((props) => {
return <Nav.item className='brewTitle'>{props.title}</Nav.item>
}, (props) => {
return {title : Store.getMetaData().title};
})

View File

@@ -0,0 +1,10 @@
module.exports = {
Account : require('./account.navitem.jsx'),
BrewTitle : require('./brewTitle.navitem.jsx'),
ContinousSave : require('./continousSave.navitem.jsx'),
Issue : require('./issue.navitem.jsx'),
Patreon : require('./patreon.navitem.jsx'),
Print : require('./print.navitem.jsx'),
Recent : require('./recent.navitem.jsx'),
StaticSave : require('./staticSave.navitem.jsx'),
};

View File

@@ -4,11 +4,7 @@ const cx = require('classnames');
const Nav = require('naturalcrit/nav/nav.jsx'); const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx'); const Navbar = require('../../navbar/navbar.jsx');
const Items = require('../../navbar/navitems.js');
const ReportIssue = require('../../navbar/issue.navitem.jsx');
const PrintLink = require('../../navbar/print.navitem.jsx');
const Account = require('../../navbar/account.navitem.jsx');
const Save = require('../../navbar/continousSave.navitem.jsx');
const BrewInterface = require('homebrewery/brewInterface/brewInterface.jsx'); const BrewInterface = require('homebrewery/brewInterface/brewInterface.jsx');
const Utils = require('homebrewery/utils.js'); const Utils = require('homebrewery/utils.js');
@@ -47,16 +43,16 @@ const SmartNav = Store.createSmartComponent(React.createClass({
render : function(){ render : function(){
return <Navbar> return <Navbar>
<Nav.section> <Nav.section>
<Nav.item className='brewTitle'>{this.props.brew.title}</Nav.item> <Items.BrewTitle />
</Nav.section> </Nav.section>
<Nav.section> <Nav.section>
<Save /> <Items.ContinousSave />
<ReportIssue /> <Items.Issue />
<Nav.item newTab={true} href={'/share/' + this.props.brew.shareId} color='teal' icon='fa-share-alt'> <Nav.item newTab={true} href={'/share/' + Store.getBrew().shareId} color='teal' icon='fa-share-alt'>
Share Share
</Nav.item> </Nav.item>
<PrintLink shareId={this.props.brew.shareId} /> <Items.Print />
<Account /> <Items.Account />
</Nav.section> </Nav.section>
</Navbar> </Navbar>
} }

View File

@@ -1,12 +1,9 @@
const React = require('react'); const React = require('react');
const _ = require('lodash'); const _ = require('lodash');
const Nav = require('naturalcrit/nav/nav.jsx'); const Nav = require('naturalcrit/nav/nav.jsx');
const Navbar = require('../../navbar/navbar.jsx'); const Navbar = require('../../navbar/navbar.jsx');
const Account = require('../../navbar/account.navitem.jsx'); const Items = require('../../navbar/navitems.js');
const Issue = require('../../navbar/issue.navitem.jsx');
const Save = require('../../navbar/staticSave.navitem.jsx');
const Store = require('homebrewery/brew.store.js'); const Store = require('homebrewery/brew.store.js');
const Actions = require('homebrewery/brew.actions.js'); const Actions = require('homebrewery/brew.actions.js');
@@ -14,27 +11,24 @@ const Actions = require('homebrewery/brew.actions.js');
const BrewInterface = require('homebrewery/brewInterface/brewInterface.jsx'); const BrewInterface = require('homebrewery/brewInterface/brewInterface.jsx');
const Utils = require('homebrewery/utils.js'); const Utils = require('homebrewery/utils.js');
const KEY = 'homebrewery-new'; const KEY = 'homebrewery-new';
const NewPage = React.createClass({ const NewPage = React.createClass({
componentDidMount: function() { componentDidMount: function() {
const storage = localStorage.getItem(KEY); try{
Actions.setBrew(JSON.parse(localStorage.getItem(KEY)));
}catch(e){}
//TODO: add a store listener for updates and dump to lcoal storage Store.updateEmitter.on('change', this.saveToLocal);
if(storage){
this.setState({
text : storage
})
}
document.addEventListener('keydown', this.handleControlKeys); document.addEventListener('keydown', this.handleControlKeys);
}, },
componentWillUnmount: function() { componentWillUnmount: function() {
Store.updateEmitter.removeListener('change', this.saveToLocal);
document.removeEventListener('keydown', this.handleControlKeys); document.removeEventListener('keydown', this.handleControlKeys);
}, },
saveToLocal : function(){
localStorage.setItem(KEY, JSON.stringify(Store.getBrew()));
},
handleControlKeys : Utils.controlKeys({ handleControlKeys : Utils.controlKeys({
s : Actions.saveNew, s : Actions.saveNew,
p : Actions.localPrint p : Actions.localPrint
@@ -44,16 +38,16 @@ const NewPage = React.createClass({
return <div className='newPage page'> return <div className='newPage page'>
<Navbar> <Navbar>
<Nav.section> <Nav.section>
<Nav.item className='brewTitle'>{Store.getMetaData().title}</Nav.item> <Items.BrewTitle />
</Nav.section> </Nav.section>
<Nav.section> <Nav.section>
<Save /> <Items.StaticSave />
<Nav.item color='purple' icon='fa-file-pdf-o' onClick={Actions.localPrint}> <Nav.item color='purple' icon='fa-file-pdf-o' onClick={Actions.localPrint}>
get PDF get PDF
</Nav.item> </Nav.item>
<Issue /> <Items.Issue />
<Account /> <Items.Account />
</Nav.section> </Nav.section>
</Navbar> </Navbar>

View File

@@ -43,6 +43,7 @@ const Actions = {
.send(Store.getBrew()) .send(Store.getBrew())
.end((err, res)=>{ .end((err, res)=>{
if(err) return dispatch('SET_STATUS', 'error', err); if(err) return dispatch('SET_STATUS', 'error', err);
localStorage.setItem('homebrewery-new', null);
const brew = res.body; const brew = res.body;
window.location = '/edit/' + brew.editId; window.location = '/edit/' + brew.editId;
}); });