// @flow import * as PAGES from 'constants/pages'; import React, { useState } from 'react'; import { FormField, Form } from 'component/common/form'; import Button from 'component/button'; import { EMAIL_REGEX } from 'constants/email'; import { useHistory } from 'react-router-dom'; import UserEmailVerify from 'component/userEmailVerify'; import Card from 'component/common/card'; import Nag from 'component/common/nag'; type Props = { errorMessage: ?string, emailToVerify: ?string, emailDoesNotExist: boolean, doClearEmailEntry: () => void, doUserSignIn: (string, ?string) => void, doUserCheckIfEmailExists: string => void, }; function UserEmailReturning(props: Props) { const { errorMessage, doUserCheckIfEmailExists, emailToVerify, doClearEmailEntry, emailDoesNotExist } = props; const { push, location } = useHistory(); const urlParams = new URLSearchParams(location.search); const emailFromUrl = urlParams.get('email'); const emailExistsFromUrl = urlParams.get('email_exists'); const defaultEmail = emailFromUrl ? decodeURIComponent(emailFromUrl) : ''; const [email, setEmail] = useState(defaultEmail); const valid = email.match(EMAIL_REGEX); const showEmailVerification = emailToVerify; function handleSubmit() { doUserCheckIfEmailExists(email); } function handleChangeToSignIn() { doClearEmailEntry(); let url = `/$/${PAGES.AUTH}`; const urlParams = new URLSearchParams(location.search); urlParams.delete('email_exists'); urlParams.delete('email'); if (email) { urlParams.set('email', encodeURIComponent(email)); } push(`${url}?${urlParams.toString()}`); } return (