import React from 'react'
import ModalDialog from './ModalDialog.jsx'
export default class LoggedOutView extends React.Component {
constructor() {
super()
this.state = { modal: null }
this.showLogin = this.showLogin.bind(this)
this.showSignup = this.showSignup.bind(this)
this.closeModal = this.closeModal.bind(this)
}
showLogin() {
this.setState({ modal: 'login' })
}
showSignup() {
this.setState({ modal: 'signup' })
}
closeModal() {
this.setState({ modal: '' })
}
render() {
const loginVisible = this.state.modal == 'login'
const signupVisible = this.state.modal == 'signup'
return (
)
}
}
class Welcome extends React.Component {
render() {
return (
Calorie Counter
)
}
}
class LoginForm extends React.Component {
constructor() {
super()
this.state = {
email: '',
password: '',
error: null,
}
this.updateState = this.updateState.bind(this)
this.handleSubmit = this.handleSubmit.bind(this)
}
updateState(event){
const name = event.target.name
const value = event.target.value
this.setState({
[name]: value,
error: null,
})
}
handleSubmit(event) {
event.preventDefault()
this.props.client.authenticate({
type: 'local',
email: this.state.email,
password: this.state.password,
}).then(res => {
console.log('Authenticated!', res);
// this.props.client.set('user', res.data)
// something in this library is hardcoded accessToken
// return this.props.client.passport.setJWT(res.token)
}).catch(error => {
console.error('Error authenticating!', error);
this.setState({
error: error.toString()
})
})
}
render() {
return (
)
}
}
class SignupForm extends React.Component {
constructor() {
super()
this.state = {
email: '',
password: '',
goal: 0,
error: null,
}
this.updateState = this.updateState.bind(this)
this.handleSubmit = this.handleSubmit.bind(this)
}
updateState(event){
const name = event.target.name
const value = event.target.value
this.setState({
[name]: value,
error: null,
})
}
handleSubmit(event) {
event.preventDefault()
const usersService = this.props.client.service('users')
usersService.create(this.state).then(result => {
return this.props.client.authenticate({
strategy: 'local',
email: this.state.email,
password: this.state.password,
})
})
.then(res => {
this.props.client.set('user', res.data)
this.props.client.set('token', res.accessToken)
return client.passport.verifyJWT(res.accessToken)
})
.then(payload => {
console.log(payload)
}).catch(error => {
console.error(error)
this.setState({
error: error.toString()
})
})
}
render() {
return (
)
}
}