From 1f8678ecdd04d6075ba44a80241bfa801881781c Mon Sep 17 00:00:00 2001
From: Lucas Schoenfelder <les17@inf.ufpr.br>
Date: Tue, 11 Feb 2020 17:13:09 -0300
Subject: [PATCH] pagina de recuperar senha quase pronta

---
 .../PasswordRecoveryComponents/Default.js     | 25 ++++++++
 .../PasswordRecoveryComponents/Error.js       | 27 ++++++++
 .../PasswordRecoveryComponents/Success.js     | 14 +++++
 src/Pages/PasswordRecoveryPage.js             | 62 ++++++++++++++-----
 4 files changed, 112 insertions(+), 16 deletions(-)
 create mode 100644 src/Components/PasswordRecoveryComponents/Default.js
 create mode 100644 src/Components/PasswordRecoveryComponents/Error.js
 create mode 100644 src/Components/PasswordRecoveryComponents/Success.js

diff --git a/src/Components/PasswordRecoveryComponents/Default.js b/src/Components/PasswordRecoveryComponents/Default.js
new file mode 100644
index 00000000..3be99525
--- /dev/null
+++ b/src/Components/PasswordRecoveryComponents/Default.js
@@ -0,0 +1,25 @@
+import React from 'react'
+import {CompletarCadastroButton} from '../TabPanels/TabPanelSolicitarContaProfessor.js'
+import FormInput from "../FormInput.js"
+
+export default function Default (props) {
+    return (
+        <div style={{overflow:"hidden", display:"inline-block"}}>
+            <h2 style={{fontSize:"32px", fontWeight:"200", marginBottom:"20px"}}>Vamos encontrar a sua conta</h2>
+            <form onSubmit={(e) => props.onSubmit(e)}>
+                <FormInput
+                    inputType={"text"}
+                    name={"email"}
+                    value={props.value}
+                    placeholder={"E-mail"}
+                    handleChange={e => props.handleChange(e)}
+                    required={true}
+                    error = {props.error}
+                />
+                <div style={{display:"flex", justifyContent:"center"}}>
+                    <CompletarCadastroButton onClick={(e) => props.onSubmit(e, props.value)}>BUSCAR</CompletarCadastroButton>
+                </div>
+            </form>
+        </div>
+    )
+}
diff --git a/src/Components/PasswordRecoveryComponents/Error.js b/src/Components/PasswordRecoveryComponents/Error.js
new file mode 100644
index 00000000..ba9fc189
--- /dev/null
+++ b/src/Components/PasswordRecoveryComponents/Error.js
@@ -0,0 +1,27 @@
+import React from 'react'
+import {CompletarCadastroButton} from '../TabPanels/TabPanelSolicitarContaProfessor.js'
+import FormInput from "../FormInput.js"
+
+export default function Default (props) {
+    return (
+        <div style={{overflow:"hidden", display:"inline-block"}}>
+            <h2 style={{fontSize:"32px", fontWeight:"200", marginBottom:"20px"}}>Ops! Não encontramos essa conta</h2>
+            <p>{props.email}</p>
+            <p>Verifique se o e-mail foi digitado corretamente ou se você utilizou algum outro e-mail.</p>
+            <form onSubmit={(e) => props.onSubmit(e)}>
+                <FormInput
+                    inputType={"text"}
+                    name={"email"}
+                    value={props.value}
+                    placeholder={"E-mail"}
+                    handleChange={e => props.handleChange(e)}
+                    required={true}
+                    error = {props.error}
+                />
+                <div style={{display:"flex", justifyContent:"center"}}>
+                    <CompletarCadastroButton onClick={(e) => props.onSubmit(e, props.value)}>BUSCAR</CompletarCadastroButton>
+                </div>
+            </form>
+        </div>
+    )
+}
diff --git a/src/Components/PasswordRecoveryComponents/Success.js b/src/Components/PasswordRecoveryComponents/Success.js
new file mode 100644
index 00000000..558f0bf4
--- /dev/null
+++ b/src/Components/PasswordRecoveryComponents/Success.js
@@ -0,0 +1,14 @@
+import React from 'react'
+import {CompletarCadastroButton} from '../TabPanels/TabPanelSolicitarContaProfessor.js'
+import FormInput from "../FormInput.js"
+
+export default function Default (props) {
+    return (
+        <div style={{overflow:"hidden", display:"inline-block", fontSize:"14px", textAlign:"start"}}>
+            <h2 style={{fontSize:"32px", fontWeight:"200", marginBottom:"20px"}}>Feito! Confira seu e-mail</h2>
+            <p> Enviamos um link para <span style={{color:"#00bcd4"}}>{props.email}</span> que permite alterar sua senha. </p>
+            <p style={{marginBottom:"30px"}}> Caso não chegue em sua caixa de entrada, dê uma olhada em outras pastas, como lixo eletrônico ou spam. </p>
+            <p> Não é o seu e-mail? <span style={{color:"#00bcd4", cursor:"pointer"}} onClick={() => {props.changeSwitch('default')}}> Tente Novamente.</span></p>
+        </div>
+    )
+}
diff --git a/src/Pages/PasswordRecoveryPage.js b/src/Pages/PasswordRecoveryPage.js
index e13c5b99..981a14e4 100644
--- a/src/Pages/PasswordRecoveryPage.js
+++ b/src/Pages/PasswordRecoveryPage.js
@@ -1,4 +1,4 @@
-import React, {useState} from 'react'
+import React, {useState, useContext} from 'react'
 import {HeaderDiv, BreadcrumbsDiv, StyledBreadcrumbs} from './UserPage.js'
 import Breadcrumbs from '@material-ui/core/Breadcrumbs';
 import {Link} from 'react-router-dom'
@@ -6,8 +6,15 @@ import Paper from '@material-ui/core/Paper';
 import styled from 'styled-components'
 import FormInput from "../Components/FormInput.js"
 import ValidateUserInput from '../Components/FormValidationFunction.js'
+import {CompletarCadastroButton} from '../Components/TabPanels/TabPanelSolicitarContaProfessor.js'
+import Default from '../Components/PasswordRecoveryComponents/Default.js'
+import Success from '../Components/PasswordRecoveryComponents/Success.js'
+import {Store} from '../Store.js'
+import Error from '../Components/PasswordRecoveryComponents/Error.js'
 
 export default function PasswordRecoveryPage (props) {
+    const {state, dispatch} = useContext(Store)
+
     const [formEmail, setEmail] = useState(
         {
             dict : {
@@ -28,6 +35,42 @@ export default function PasswordRecoveryPage (props) {
         console.log(formEmail)
     }
 
+    const [aux, setCase] = useState('default')
+    const handleChangeSwitch = (value) => setCase(value);
+
+    const onSubmit = (e, email) => {
+        e.stopPropagation()
+        const query = email
+
+        setEmail({...formEmail, dict : {
+            key : false,
+            value : ''
+        }})
+        handleChangeSwitch('error')
+    }
+
+
+    const components = {
+        default : <Default handleChange={handleChange} onSubmit={onSubmit} value={formEmail.dict.value} error={formEmail.dict.key}/>,
+        success : <Success email={state.currentUser.email} changeSwitch={handleChangeSwitch}/>,
+        error : <Error email={state.currentUser.email} handleChange={handleChange} onSubmit={onSubmit} value={formEmail.dict.value} error={formEmail.dict.key}/>
+    }
+
+    const switchFunction = (value) => {
+        switch(value) {
+            case 'success':
+                return components.success;
+                break;
+            case 'error':
+                return components.error;
+                break;
+            default:
+                return components.default
+                break;
+
+            }
+    }
+
     return (
         <>
             <HeaderDiv>
@@ -44,23 +87,10 @@ export default function PasswordRecoveryPage (props) {
                     </BreadcrumbsDiv>
                 </div>
 
-                <div style={{justifyContent:"center", width:"1170px", margin:"auto"}}>
+                <div style={{justifyContent:"center", textAlign:"center", maxWidth:"600px", margin:"auto"}}>
                 <Paper elevation={3}>
                     <CardDiv>
-                        <div style={{overflow:"hidden"}}>
-                            <h2 style={{fontSize:"32px", fontWeight:"200", marginBottom:"20px"}}>Vamos encontrar a sua conta</h2>
-                            <form>
-                                <FormInput
-                                    inputType={"text"}
-                                    name={"email"}
-                                    value={formEmail.dict.value}
-                                    placeholder={"E-mail"}
-                                    handleChange={e => handleChange(e)}
-                                    required={true}
-                                    error = {formEmail.dict.key}
-                                />
-                            </form>
-                        </div>
+                            {switchFunction(aux)}
                     </CardDiv>
                 </Paper>
                 </div>
-- 
GitLab