diff --git a/client/homebrew/navbar/brewTitle.navitem.jsx b/client/homebrew/navbar/brewTitle.navitem.jsx new file mode 100644 index 000000000..8bec43ada --- /dev/null +++ b/client/homebrew/navbar/brewTitle.navitem.jsx @@ -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 {props.title} +}, (props) => { + return {title : Store.getMetaData().title}; +}) \ No newline at end of file diff --git a/client/homebrew/navbar/navitems.js b/client/homebrew/navbar/navitems.js new file mode 100644 index 000000000..c0a43d8d8 --- /dev/null +++ b/client/homebrew/navbar/navitems.js @@ -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'), +}; \ No newline at end of file diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 3d5666e20..58aecbbcd 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -4,11 +4,7 @@ const cx = require('classnames'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); - -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 Items = require('../../navbar/navitems.js'); const BrewInterface = require('homebrewery/brewInterface/brewInterface.jsx'); const Utils = require('homebrewery/utils.js'); @@ -47,16 +43,16 @@ const SmartNav = Store.createSmartComponent(React.createClass({ render : function(){ return - {this.props.brew.title} + - - - + + + Share - - + + } diff --git a/client/homebrew/pages/newPage/newPage.jsx b/client/homebrew/pages/newPage/newPage.jsx index 0a27cfcd8..38bb4995f 100644 --- a/client/homebrew/pages/newPage/newPage.jsx +++ b/client/homebrew/pages/newPage/newPage.jsx @@ -1,12 +1,9 @@ const React = require('react'); const _ = require('lodash'); - const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); -const Account = require('../../navbar/account.navitem.jsx'); -const Issue = require('../../navbar/issue.navitem.jsx'); -const Save = require('../../navbar/staticSave.navitem.jsx'); +const Items = require('../../navbar/navitems.js'); const Store = require('homebrewery/brew.store.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 Utils = require('homebrewery/utils.js'); - const KEY = 'homebrewery-new'; const NewPage = React.createClass({ componentDidMount: function() { - const storage = localStorage.getItem(KEY); - - - //TODO: add a store listener for updates and dump to lcoal storage - - - if(storage){ - this.setState({ - text : storage - }) - } + try{ + Actions.setBrew(JSON.parse(localStorage.getItem(KEY))); + }catch(e){} + Store.updateEmitter.on('change', this.saveToLocal); document.addEventListener('keydown', this.handleControlKeys); }, componentWillUnmount: function() { + Store.updateEmitter.removeListener('change', this.saveToLocal); document.removeEventListener('keydown', this.handleControlKeys); }, + + saveToLocal : function(){ + localStorage.setItem(KEY, JSON.stringify(Store.getBrew())); + }, handleControlKeys : Utils.controlKeys({ s : Actions.saveNew, p : Actions.localPrint @@ -44,16 +38,16 @@ const NewPage = React.createClass({ return
- {Store.getMetaData().title} + - + get PDF - - + + diff --git a/shared/homebrewery/brew.actions.js b/shared/homebrewery/brew.actions.js index b489fcafa..6c8d32bfe 100644 --- a/shared/homebrewery/brew.actions.js +++ b/shared/homebrewery/brew.actions.js @@ -43,6 +43,7 @@ const Actions = { .send(Store.getBrew()) .end((err, res)=>{ if(err) return dispatch('SET_STATUS', 'error', err); + localStorage.setItem('homebrewery-new', null); const brew = res.body; window.location = '/edit/' + brew.editId; });