require('./brewLookup.less'); 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, scriptCount : 0 }; }, handleChange(e){ this.setState({ query: e.target.value }); }, lookup(){ this.setState({ searching: true, error: null, scriptCount: 0 }); request.get(`/admin/lookup/${this.state.query}`) .then((res)=>{ const foundBrew = res.body; const scriptCheck = foundBrew?.text.match(/(<\/?s)cript/g); this.setState({ foundBrew : foundBrew, scriptCount : scriptCheck?.length || 0, }); }) .catch((err)=>this.setState({ error: err })) .finally(()=>{ this.setState({ searching : false }); }); }, async cleanScript(){ if(!this.state.foundBrew?.shareId) return; await request.put(`/admin/clean/script/${this.state.foundBrew.shareId}`) .catch((err)=>{ this.setState({ error: err }); return; }); this.lookup(); }, renderFoundBrew(){ const brew = this.state.foundBrew; return
Title
{brew.title}
Authors
{brew.authors.join(', ')}
Edit Link
/edit/{brew.editId}
Share Link
/share/{brew.shareId}
Created Time
{brew.createdAt ? Moment(brew.createdAt).toLocaleString() : 'No creation date'}
Last Updated
{Moment(brew.updatedAt).fromNow()}
Num of Views
{brew.views}
SCRIPT tags detected
{this.state.scriptCount}
{this.state.scriptCount > 0 &&
}
; }, render(){ return

Brew Lookup

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