From 68389d8ab7ca23c2788a7810f3c83cdcd8afc5c8 Mon Sep 17 00:00:00 2001 From: Christopher Cross Date: Thu, 5 Nov 2020 02:23:28 -0800 Subject: [PATCH 1/6] implement create account page --- backend/app.js | 3 +- .../src/components/common/button/button.js | 4 +- client-mvp-04/src/components/home/home.js | 2 +- .../src/components/register/register.js | 103 ++++++++++++++++++ .../src/components/register/register.scss | 90 +++++++++++++++ .../src/components/register/resgister.test.js | 0 client-mvp-04/src/routes/index.js | 6 + 7 files changed, 204 insertions(+), 4 deletions(-) create mode 100644 client-mvp-04/src/components/register/register.js create mode 100644 client-mvp-04/src/components/register/register.scss create mode 100644 client-mvp-04/src/components/register/resgister.test.js diff --git a/backend/app.js b/backend/app.js index a20a980bf..6ffe3d245 100644 --- a/backend/app.js +++ b/backend/app.js @@ -8,6 +8,7 @@ const fetch = require("node-fetch"); const morgan = require("morgan"); const path = require("path"); const cookieParser = require("cookie-parser"); +const cors = require('cors'); // Import environment variables require("dotenv").config(); @@ -49,7 +50,7 @@ app.use(morgan("dev")); // app.use(helmet()); // Cross-Origin-Resource-Sharing -// app.use(cors()); +app.use(cors()); // WORKERS const runOpenCheckinWorker = require("./workers/openCheckins")(cron, fetch); diff --git a/client-mvp-04/src/components/common/button/button.js b/client-mvp-04/src/components/common/button/button.js index 352c887c4..1f997a13b 100644 --- a/client-mvp-04/src/components/common/button/button.js +++ b/client-mvp-04/src/components/common/button/button.js @@ -1,9 +1,9 @@ import React from 'react'; import './button.scss'; -const Button = ({ content, className }) => { +const Button = ({ content, className, onClick, disabled }) => { return ( - ); diff --git a/client-mvp-04/src/components/home/home.js b/client-mvp-04/src/components/home/home.js index e2a82c24a..be8b6b462 100644 --- a/client-mvp-04/src/components/home/home.js +++ b/client-mvp-04/src/components/home/home.js @@ -18,7 +18,7 @@ const Home = () => { or { + + const [inputtedEmail, setInputtedEmail] = useState(''); + const [errorMessage, setErrorMessage] = useState(null); + + const validateEmail = () => { + + const email_regex = /^\S+@\S+$/; + const emailIsValid = email_regex.test(inputtedEmail); + + if (emailIsValid) { + checkUserByEmail(); + } else { + setErrorMessage( +

+ *Please enter a valid email address +

+ ); + } + + } + + const checkUserByEmail = async () => { + + console.log('checking user by email'); + + try { + + const res = await fetch(`${process.env.REACT_APP_PROXY}/api/checkuser`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ email: inputtedEmail }), + }); + + const user = await res.json(); + console.log(user); + + + if (user === false) { + props.history.push('/page'); + } else { + setErrorMessage( +

+ *You already have an account for that email + address. Want to + + ? +

+ ); + } + + } catch (error) { + alert(error); + } + + } + + const handleInputtedEmailChange = async (event) => { + const inputtedEmail = event.target.value.replace(' ', ''); + setInputtedEmail(inputtedEmail); + } + + useEffect(() => { + setErrorMessage(null); + }, [inputtedEmail]) + + return ( +
+

VRMS

+

Volunteer Relationship Management System

+ handleInputtedEmailChange(event)} + /> +