import React from 'react'; import { TitleInput, PasteInput } from './Inputs' import OptionsContainer from './Options' import { Redirect } from 'react-router-dom' import Error from './Err' import { PostNewPaste } from '../helpers/httpHelper' class NewPaste extends React.Component { constructor(props) { super(props); this.state = { title: '', content: '', pass: '', expiry: '', hash: '', error: '', }; this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } newErr(msg, duration = 5000) { this.setState({ error: msg }) setTimeout(() => { this.setState({ error: '' }) }, duration); } renderRedirect = () => { if (this.state.hash !== '') { const redirUrl = `/${this.state.hash}` return } } componentDidUpdate() { if (this.state.title === "") { document.title = `ctrl-v`; } else { document.title = `ctrl-v | ${this.state.title}`; } } handleChange(event) { const target = event.target; const name = target.name; this.setState({ [name]: target.value }); } handleSubmit(event) { event.preventDefault(); PostNewPaste(this.state) .then((response) => { // on success, redir this.setState({ hash: response.data.hash }) }).catch((error) => { const resp = error.response // some weird err if (resp !== undefined) { const errTxt = `${resp.statusText}: ${resp.data}` this.newErr(errTxt) } else { // some weird err (e.g. network) this.newErr(error) } }); } render() { return (
{this.renderRedirect()} ); } } export default NewPaste