{"version":3,"sources":["webpack:///./Scripts/Components/ForgotPassword.js"],"names":["ForgotPassword","_Component","props","_this","_classCallCheck","_callSuper","state","getInitialState","_inherits","_createClass","key","value","email","isLoading","isCompleted","isError","invalidInput","redirecturl","this","loadingInterval","setState","clearInterval","_this2","_objectSpread","_setTimeout","window","location","href","ex","event","_this3","eventValue","target","_defineProperty","name","verifyEmailInput","inputChange","_context","valid","_includesInstanceProperty","call","_this4","post","then","onSuccess","catch","onError","finally","_setInterval","reset","_this5","title","React","createElement","className","style","concat","id","type","placeholder","translate","onChange","onInputChanged","LoadingButton","onClick","onSubmit","width","submitText","errorText","successText","Component"],"mappings":"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","file":"19.e3ece3cc7e9a86d17a99.js","sourcesContent":["import React, { Component } from 'react';\r\nimport { post } from '../Services/http';\r\nimport LoadingButton from '../Components/LoadingButton'\r\nimport { translate } from '../Services/translation';\r\n\r\nclass ForgotPassword extends Component {\r\n    constructor(props) {\r\n        super(props);\r\n        this.state = this.getInitialState();\r\n    }\r\n\r\n    getInitialState() {\r\n        return {\r\n            email: \"\",\r\n            isLoading: false,\r\n            isCompleted: false,\r\n            isError: false,\r\n            invalidInput: false,\r\n            redirecturl: this.props.redirecturl\r\n        };\r\n    }\r\n\r\n    reset(loadingInterval) {\r\n        this.setState(this.getInitialState());\r\n        clearInterval(loadingInterval);\r\n    }\r\n\r\n    onSuccess() {\r\n        this.setState({...this.getInitialState(), isCompleted: true})\r\n\r\n        if (this.state.redirecturl) {\r\n            setTimeout(() => {\r\n                window.location.href = this.state.redirecturl;\r\n            }, 2000);\r\n        }\r\n    }\r\n\r\n    onError(ex) {\r\n        this.setState({...this.getInitialState(), isError: true});\r\n    }\r\n\r\n    onInputChanged(event) {\r\n        const eventValue = event.target.value\r\n        this.setState({ [event.target.name]: eventValue }, \r\n            () => this.verifyEmailInput(eventValue, true))\r\n    }\r\n\r\n    verifyEmailInput(value, inputChange) {\r\n        const valid = (inputChange === true && value === \"\") || (this.state.email !== \"\" && this.state.email.includes(\"@\"));\r\n        this.setState({invalidInput: !valid}); \r\n\r\n        return valid;\r\n    }\r\n\r\n    onSubmit() {\r\n        if(!this.verifyEmailInput(this.state.email, false)) {\r\n            return;\r\n        }\r\n        \r\n        this.setState({ isLoading: true});\r\n        \r\n        post('/api/user/requestpasswordresettoken', {email: this.state.email})\r\n        .then(() => this.onSuccess())\r\n        .catch(ex => this.onError(ex))\r\n        .finally(() => \r\n        {\r\n            const loadingInterval = setInterval(() => this.reset(loadingInterval), 3000);\r\n        });\r\n    }\r\n\r\n    render() {\r\n        const title = this.props.title;\r\n\r\n        const headerStyle = {\r\n            'margin-bottom': '2rem'\r\n        }\r\n\r\n        const inputStyle = {\r\n            'margin': '0'\r\n        }\r\n\r\n        const errorStyle = {\r\n            'margin-bottom': '0.5rem',\r\n            'height': '1rem'\r\n        }\r\n\r\n        const buttonStyle = {\r\n            width: '100%'\r\n        }\r\n\r\n        return(\r\n            <div className=\"full-height\">\r\n                {title && (<div className=\"row\" style={headerStyle}>\r\n                    <div className=\"columns\"><span className=\"text-center\"><h4>{title}</h4></span></div>\r\n                </div>)}\r\n                <div className=\"row\">\r\n                    <div className=\"columns small-12 medium-expand\"/>\r\n                    <div className=\"columns small-12 medium-expand\">\r\n                        <input style={inputStyle} className={`form__input ${this.state.invalidInput ? \"invalidinput\" : \"\"}`} \r\n                            id=\"email\" name=\"email\" type=\"email\" placeholder={translate('forgotpassword.email')} \r\n                            onChange={(event) => this.onInputChanged(event)} \r\n                            value={this.state.email || ''}/>\r\n                        <span id=\"error\" style={errorStyle} className=\"form__validator--error\">\r\n                            { (this.state.isError && translate('forgotpassword.genericerror')) \r\n                            || (this.state.invalidInput && translate('forgotpassword.invalidinput'))}\r\n                        </span>\r\n                        <LoadingButton onClick={() => this.onSubmit(this.state.email)}\r\n                            style = {buttonStyle}\r\n                            submitText={translate('forgotpassword.submit')} \r\n                            errorText={translate('forgotpassword.error')} \r\n                            successText={translate('forgotpassword.success')}\r\n                            isLoading={this.state.isLoading} isCompleted={this.state.isCompleted} isError={this.state.isError}/>\r\n                    </div>\r\n                    <div className=\"columns small-12 medium-expand\"/>\r\n                </div>\r\n            </div>\r\n        );\r\n    }\r\n\r\n}\r\n\r\nexport default ForgotPassword;\r\n"],"sourceRoot":""}