require('./archivePage.less'); const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); const moment = require('moment'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; const Account = require('../../navbar/account.navitem.jsx'); const NewBrew = require('../../navbar/newbrew.navitem.jsx'); const HelpNavItem = require('../../navbar/help.navitem.jsx'); const NaturalCritIcon = require('naturalcrit/svg/naturalcrit.svg.jsx'); const ArchivePage = createClass({ displayName : 'ArchivePage', getDefaultProps : function() { return { query : '', foundBrew : null, searching : false, error : null }; }, getInitialState : function() { return { uiItems : this.props.uiItems }; }, handleChange(e){ this.setState({ query: e.target.value }); }, lookup(){ this.setState({ searching: true, error: null }); request.get(`/admin/lookup/${this.state.query}`) .then((res)=>this.setState({ foundBrew: res.body })) .catch((err)=>this.setState({ error: err })) .finally(()=>this.setState({ searching: false })); }, renderFoundBrew(){ const brew = this.state.foundBrew; return
Title
{brew.title}
Authors
{brew.authors.join(', ')}
Edit Link
/edit/{brew.editId}
Share Link
/share/{brew.shareId}
Last Updated
{Moment(brew.updatedAt).fromNow()}
Num of Views
{brew.views}
; }, renderForm: function() { return

Brew Lookup

{/* In the future, we should be able to filter the results by adding tags. */} {this.state.error &&
{this.state.error.toString()}
} {this.state.foundBrew ? this.renderFoundBrew() :
No brew found.
}
; }, renderResults : function() { }, renderNavItems : function() { return ; }, render : function() { return
{this.renderNavItems()}

Welcome to the Archive

{this.renderForm()}

Your results, my lordship

{this.renderResults()}
} }); module.exports = ArchivePage;