diff --git a/jam-ui/src/components/auth/JKRegistrationForm.js b/jam-ui/src/components/auth/JKRegistrationForm.js new file mode 100644 index 000000000..c742a83db --- /dev/null +++ b/jam-ui/src/components/auth/JKRegistrationForm.js @@ -0,0 +1,111 @@ +import React, { Fragment, useState, useEffect } from 'react'; +import PropTypes from 'prop-types'; +import { Link, useHistory } from 'react-router-dom'; +import { toast } from 'react-toastify'; +import { Button, CustomInput, Form, FormGroup, Input, Label } from 'reactstrap'; +import Divider from '../common/Divider'; +import SocialAuthButtons from './SocialAuthButtons'; +import withRedirect from '../../hoc/withRedirect'; +import { useAuth } from '../../context/UserAuth'; +import { useTranslation } from 'react-i18next'; + +const JKRegistrationForm = ({ setRedirect, setRedirectUrl, layout, hasLabel }) => { + // State + const [firstName, setFirstName] = useState(''); + const [email, setEmail] = useState(''); + const [password, setPassword] = useState(''); + const [isDisabled, setIsDisabled] = useState(true); + + // Context + const { signUp, setCurrentUser } = useAuth(); + + const { t } = useTranslation('auth'); + + const history = useHistory(); + // let { from } = location.state || { from: { pathname: "/" } }; + + // Handler + const handleSubmit = async e => { + e.preventDefault(); + setIsDisabled(true); + try { + const params = { + first_name: firstName, + email, + password, + password_confirmation: password, + terms: true + }; + const response = await signUp(params); + const user = await response.json(); + console.log('_DEBUG_ user', user); + setCurrentUser(user); + toast.success(`Successfully registered as ${firstName}`); + setRedirect(true); + history.push('/download'); + }catch (error) { + console.error(error); + toast.error('An error occurred. Please try again.'); + setIsDisabled(false); + } + }; + + // useEffect(() => { + // setRedirectUrl(`/authentication/${layout}/login`); + // }, [setRedirectUrl, layout]); + + useEffect(() => { + setIsDisabled(!firstName || !email || !password); + }, [firstName, email, password]); + + return ( +
+ ); +}; + +JKRegistrationForm.propTypes = { + setRedirect: PropTypes.func.isRequired, + setRedirectUrl: PropTypes.func.isRequired, + layout: PropTypes.string, + hasLabel: PropTypes.bool +}; + +JKRegistrationForm.defaultProps = { + layout: 'basic', + hasLabel: false +}; + +export default withRedirect(JKRegistrationForm); diff --git a/jam-ui/src/components/auth/basic/JKAuthBasicRoutes.js b/jam-ui/src/components/auth/basic/JKAuthBasicRoutes.js index 76ffc4c53..cb83a5e29 100644 --- a/jam-ui/src/components/auth/basic/JKAuthBasicRoutes.js +++ b/jam-ui/src/components/auth/basic/JKAuthBasicRoutes.js @@ -4,7 +4,7 @@ import { Redirect, Route, Switch, withRouter } from 'react-router-dom'; import Login from './Login'; // import Start from './Start'; // import Logout from './Logout'; -// import Registration from './Registration'; +import Registration from './JKRegistration'; import ForgetPassword from './ForgetPassword'; import PasswordReset from './PasswordReset'; import ConfirmMail from './ConfirmMail'; @@ -13,6 +13,7 @@ import ConfirmMail from './ConfirmMail'; const AuthBasicRoutes = ({ match: { url } }) => (+ Have an account? Login +
+ +- or {/* create an account */} - {t('signup')} + or {t('signup')} + {/* {t('signup')} */}
diff --git a/jam-ui/src/components/dashboard/JKDashboardMain.js b/jam-ui/src/components/dashboard/JKDashboardMain.js index aae1045da..a24a4fa5a 100644 --- a/jam-ui/src/components/dashboard/JKDashboardMain.js +++ b/jam-ui/src/components/dashboard/JKDashboardMain.js @@ -44,6 +44,7 @@ import JKEditProfile from '../page/JKEditProfile'; import JKEditAccount from '../page/JKEditAccount'; import JKAccountSubscription from '../page/JKAccountSubscription'; import JKPaymentHistory from '../page/JKPaymentHistory'; +import JKDownload from '../page/JKDownload'; import JKAffiliateProgram from '../affiliate/JKAffiliateProgram'; import JKAffiliatePayee from '../affiliate/JKAffiliatePayee'; @@ -319,6 +320,7 @@ function JKDashboardMain() {