const React = require('react'); const createClass = require('create-react-class'); const cx = require('classnames'); const request = require('superagent'); const Moment = require('moment'); const BrewLookup = createClass({ getDefaultProps() { return {}; }, getInitialState() { return { query : '', foundBrew : null, searching : false, error : null, checkForScript : false }; }, handleChange(e){ this.setState({ query: e.target.value }); }, lookup(){ this.setState({ searching: true, error: null, checkForScript: false }); 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 })); }, checkForScript(){ const brew = this.state.foundBrew; const scriptCheck = brew.text.match(/(<\/?s)cript/); this.setState({ checkForScript : !!scriptCheck }); }, cleanScript(){ if(!this.state.foundBrew?.shareId) return; request.put(`/admin/clean/script/${this.state.foundBrew.shareId}`) .then((res)=>this.setState({ foundBrew: res.body })) .catch((err)=>this.setState({ error: err })) .finally(()=>this.setState({ checkForScript: 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}
{this.state.checkForScript && }
; }, render(){ return

Brew Lookup

{this.state.error &&
{this.state.error.toString()}
} {this.state.foundBrew ? this.renderFoundBrew() :
No brew found.
}
; } }); module.exports = BrewLookup;