diff --git a/client/src/connectors/ResetPassword.connect.js b/client/src/connectors/ResetPassword.connect.js index 5dc209556..782738681 100644 --- a/client/src/connectors/ResetPassword.connect.js +++ b/client/src/connectors/ResetPassword.connect.js @@ -1,5 +1,5 @@ import { connect } from 'react-redux'; -import { submitResetPassword } from 'store/resetPassword/resetPassword.action'; +import { submitResetPassword } from 'store/authentication/authentication.actions'; export const mapStateToProps = (state, props) => { return {}; @@ -7,7 +7,7 @@ export const mapStateToProps = (state, props) => { export const mapDispatchToProps = (dispatch) => ({ requestResetPassword: (password) => - dispatch(submitResetPassword({password})), + dispatch(submitResetPassword({ password })), }); export default connect(mapStateToProps, mapDispatchToProps); diff --git a/client/src/connectors/SendResetPassword.connect.js b/client/src/connectors/SendResetPassword.connect.js new file mode 100644 index 000000000..3d8904726 --- /dev/null +++ b/client/src/connectors/SendResetPassword.connect.js @@ -0,0 +1,13 @@ +import { connect } from 'react-redux'; +import { submitSendResetPassword } from 'store/authentication/authentication.actions'; + +export const mapStateToProps = (state, props) => { + return {}; +}; + +export const mapDispatchToProps = (dispatch) => ({ + requestSendResetPassword: (email) => + dispatch(submitSendResetPassword({ email })), +}); + +export default connect(mapStateToProps, mapDispatchToProps); diff --git a/client/src/containers/Authentication/InviteAccept.js b/client/src/containers/Authentication/InviteAccept.js index aec099b18..79e45c0f7 100644 --- a/client/src/containers/Authentication/InviteAccept.js +++ b/client/src/containers/Authentication/InviteAccept.js @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import * as Yup from 'yup'; import { useFormik } from 'formik'; import { useIntl } from 'react-intl'; @@ -13,8 +13,14 @@ import { Intent, FormGroup, HTMLSelect, + Icon, } from '@blueprintjs/core'; +import { Row, Col } from 'react-grid-system'; +import IconLog from 'components/Icon'; +import Copyright from './copyright'; +import { Link } from 'react-router-dom'; + function Invite({ requestSubmitInvite }) { const intl = useIntl(); let params = useParams('accept/:token'); @@ -23,18 +29,12 @@ function Invite({ requestSubmitInvite }) { const phoneRegExp = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/; - const language = useMemo(() => [ - { value: null, label: 'Select Country' }, - { value: 'Arabic', label: 'Arabic' }, - { value: 'English', label: 'English' }, - ], []); const ValidationSchema = Yup.object().shape({ first_name: Yup.string().required(), last_name: Yup.string().required(), email: Yup.string().email().required(), phone_number: Yup.string().matches(phoneRegExp).required(), - language: Yup.string().required(), password: Yup.string() .min(4, 'Password has to be longer than 4 characters!') .required('Password is required!'), @@ -51,122 +51,175 @@ function Invite({ requestSubmitInvite }) { }), [] ); - const { - handleSubmit, - errors, - values, - touched, - getFieldProps, - } = useFormik({ + const formik = useFormik({ enableReinitialize: true, validationSchema: ValidationSchema, initialValues: { ...initialValues, }, onSubmit: (values, { setSubmitting }) => { - requestSubmitInvite(values, token).then((response) => { - AppToaster.show({ - message: 'success', + requestSubmitInvite(values, token) + .then((response) => { + AppToaster.show({ + message: 'success', + }); + setSubmitting(false); + }) + .catch((error) => { + setSubmitting(false); }); - setSubmitting(false); - }) - .catch((error) => { - setSubmitting(false); - }); }, }); + const requiredSpan = useMemo(() => *, []); + const [shown, setShown] = useState(false); + + const passwordRevealer = () => { + setShown(!shown); + }; return (