import React, {Component} from 'react'; import FormContext from './FormContext'; import {toast, ToastContainer} from 'react-toastify'; export default class Form extends Component { constructor(props) { super(props) this.state = { data: props.data } this.displayError = true this.handleError(props) } componentWillReceiveProps(props) { this.handleError(props) this.setState({ data: props.data }) } handleError(props) { if (props.data && props.data.error && props.toast && this.displayError == true) { toast.error(props.data.error) this.displayError = false } } render() { return (
{this.renderError()} {this.props.children}
) } _onSubmit = (e) => { e.preventDefault() this.props.onSubmit() this.displayError = true return false; } renderError() { if (this.state.data && this.state.data.error && !this.props.toast) { return (

{this.state.data.error}

) } return null } } Form.defaultProps = { data: null, toast: false, onSubmit: () => { console.log('[Form] submitted') } }