Forgot Password
This commit is contained in:
parent
684774440e
commit
db6fc216ae
@ -1,21 +1,29 @@
|
||||
import React, { useState, useEffect } from 'react'
|
||||
import Image from 'next/image';
|
||||
import { useRouter } from 'next/router'
|
||||
|
||||
import FormData from 'form-data';
|
||||
import Snackbar from '@mui/material/Snackbar';
|
||||
import LoginButton from '../components/buttons/loginButton/LoginButton';
|
||||
import TextField from '@mui/material/TextField';
|
||||
import { ForgotPasswordContainer, ForgotPasswordView } from '../styles/layouts/forgotPassword/ForgotPasswordView';
|
||||
import RenderIf from '../utils/renderIf';
|
||||
import Alert from '@mui/material/Alert';
|
||||
import Head from 'next/head';
|
||||
import { GetServerSideProps } from 'next';
|
||||
import { parseCookies } from 'nookies';
|
||||
import getAPIClient from '../services/ssrApi';
|
||||
import { api } from '../services/api';
|
||||
|
||||
export default function ForgotPassword() {
|
||||
const router = useRouter()
|
||||
const rota = router.pathname
|
||||
|
||||
const formData = new FormData();
|
||||
const [openSnackSuccess, setOpenSnackSuccess] = useState<boolean>(false);
|
||||
const [openSnackError, setOpenSnackError] = useState<boolean>(false);
|
||||
const [password, setPassword] = useState<string>('')
|
||||
const [confirmPassword, setConfirmPassword] = useState<string>('')
|
||||
const [same, setSame] = useState<boolean>(false)
|
||||
const [email, setEmail] = useState<any>();
|
||||
|
||||
useEffect(() => {
|
||||
setPassword('')
|
||||
@ -23,6 +31,15 @@ export default function ForgotPassword() {
|
||||
setSame(false)
|
||||
}, [rota])
|
||||
|
||||
|
||||
const handleCloseSnack = (event?: React.SyntheticEvent | Event, reason?: string) => {
|
||||
if (reason === 'clickaway') {
|
||||
return;
|
||||
}
|
||||
setOpenSnackError(false);
|
||||
setOpenSnackSuccess(false);
|
||||
};
|
||||
|
||||
function handleChangePassword() {
|
||||
if (same) {
|
||||
router.push('/')
|
||||
@ -39,6 +56,15 @@ export default function ForgotPassword() {
|
||||
}
|
||||
}, [password])
|
||||
|
||||
function handleSendEmail() {
|
||||
formData.append('email', email)
|
||||
api.post('/auth/forgot-password', formData).then(res => {
|
||||
setOpenSnackSuccess(true)
|
||||
}).catch(res => {
|
||||
setOpenSnackError(true)
|
||||
})
|
||||
}
|
||||
|
||||
return (
|
||||
<ForgotPasswordView auth={rota} >
|
||||
<Head>
|
||||
@ -52,7 +78,18 @@ export default function ForgotPassword() {
|
||||
<TextField id="outlined-basic" sx={{ m: 1, width: '90%' }} value={password} label="Senha" onChange={value => setPassword(value.target.value)} variant="outlined"/>
|
||||
<TextField id="outlined-basic" sx={{ m: 1, width: '90%' }} value={confirmPassword} label="Confirmar Senha" onChange={value => setConfirmPassword(value.target.value)} variant="outlined"/>
|
||||
|
||||
<LoginButton title='Redefinir Senha' onClick={() => handleChangePassword()} />
|
||||
<LoginButton title='Redefinir Senha' onClick={() => handleSendEmail()} />
|
||||
|
||||
<Snackbar open={openSnackSuccess} autoHideDuration={4000} onClose={handleCloseSnack}>
|
||||
<Alert onClose={handleCloseSnack} severity="success" sx={{ width: '100%' }}>
|
||||
PDF enviado com Sucesso!
|
||||
</Alert>
|
||||
</Snackbar>
|
||||
<Snackbar open={openSnackError} autoHideDuration={4000} onClose={handleCloseSnack}>
|
||||
<Alert onClose={handleCloseSnack} severity="error" sx={{ width: '100%' }}>
|
||||
Falha ao enviar PDF!
|
||||
</Alert>
|
||||
</Snackbar>
|
||||
|
||||
<fieldset className="line">
|
||||
<legend className="text">Ou</legend>
|
||||
@ -65,3 +102,22 @@ export default function ForgotPassword() {
|
||||
)
|
||||
}
|
||||
|
||||
export const getServerSideProps: GetServerSideProps = async (ctx) => {
|
||||
const apiClient = getAPIClient(ctx)
|
||||
const { ['@smartAuth-token']: token } = parseCookies(ctx)
|
||||
const { ['user-name']: userName } = parseCookies(ctx)
|
||||
if (!token) {
|
||||
return {
|
||||
redirect: {
|
||||
destination: '/',
|
||||
permanent: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
props: {
|
||||
userName
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user