import React, { Component } from 'react' import { doLogin } from '../redux/actions/userAct' import PaddedRow from './PaddedRow' import Spinner from './Spinner' import getUrl from '../util/getUrl' export default class Setup extends Component { state = { email: '', password: '', confirmPass: '', pending: false, error: null, } updVal = e => { const el = e.target let key = 'email' if (el.id === 'pass') key = 'password' else if (el.id === 'pass2') key = 'confirmPass' const obj = {} obj[key] = el.value this.setState(obj) } submit = e => { e.preventDefault() let { email, password, confirmPass, pending } = this.state if (pending) return email = email.trim() password = password.trim() confirmPass = confirmPass.trim() const hasEmpty = [email, password, confirmPass].some( val => val.length === 0 ) if (hasEmpty) return if (password.toLowerCase() !== confirmPass.toLowerCase()) { return this.setState({ error: "Passwords don't match" }) } this.setState({ pending: true, error: null }) const defaultErr = 'Could not create account' fetch(getUrl('users'), { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email, password, admin: true }), }) .then(res => { if (res.ok) { return doLogin({ email, password }, null, true) } res.json().then(({ message }) => { const error = message || defaultErr this.setState({ pending: false, error }) }) }) .catch(err => { const error = err.message || defaultErr this.setState({ pending: false, error }) }) } render() { const { pending, error } = this.state return (