Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 2000 | Rev 2007 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1972 steven 1
import React,  { useState, useMemo } from 'react';
1968 steven 2
import Spinner from '../../../shared/loading-spinner/Spinner';
1969 steven 3
import styled from 'styled-components';
1989 steven 4
import axios from '../../../utils/axios';
1992 steven 5
import { addNotification } from '../../../redux/notification/notification.actions';
1993 steven 6
import { connect } from 'react-redux';
1966 steven 7
 
1968 steven 8
const StyledSpinnerContainer = styled.div`
9
  position: absolute;
10
  left: 0;
11
  top: 0;
12
  width: 100%;
13
  height: 100%;
14
  background: rgba(255, 255, 255, 0.4);
15
  display: flex;
16
  justify-content: center;
17
  align-items: center;
18
  z-index: 300;
19
`;
1992 steven 20
function CloseAccount(props) {
21
    const {addNotification} = props
1966 steven 22
    const [showInputCode, setShowInputCode] = useState(false);
1968 steven 23
    const [loading, setLoading] = useState(false);
1992 steven 24
    const handleAlert = (status, message) => {
25
        addNotification({
26
            style: status ? "success" : 'danger',
1996 steven 27
            msg: message || 'Email enviado exitosamente',
1992 steven 28
        });
29
    }
1991 steven 30
    const handleGetCode  = async () => {
1966 steven 31
        try {
1991 steven 32
            setShowInputCode(true)
1990 steven 33
            setLoading(true)
34
            const res = await axios.get('/account-settings/delete-account');
1997 steven 35
            handleAlert(res.data.success, res.data.data.message)
1966 steven 36
        } catch (error) {
1992 steven 37
            handleAlert(false, 'Disculpe, ha ocurrido un error')
1966 steven 38
            console.log('>>: error > ', error)
1990 steven 39
        }finally{
40
            setLoading(false)
1966 steven 41
        }
42
    }
1990 steven 43
 
1991 steven 44
    const resendCode = async () => {
45
        try {
46
            setLoading(true)
47
            const res = await axios.get('/account-settings/delete-account');
1997 steven 48
            handleAlert(res.data.success, res.data.data.message)
1991 steven 49
            console.log('>>: resend code > ', res)
50
        } catch (error) {
1992 steven 51
            handleAlert(false, 'Disculpe, ha ocurrido un error')
1991 steven 52
            console.log('>>: error > ', error)
53
        }finally{
54
            setLoading(false)
55
        }
56
    }
57
 
2000 steven 58
    const logout = () => {
59
        window.location.href = '/signout';
1995 steven 60
    }
1990 steven 61
    const handleSubmit = async (e) => {
1968 steven 62
        try {
1990 steven 63
            e.preventDefault()
2001 steven 64
            console.log('>>: e >', e)
1968 steven 65
            setLoading(true)
2001 steven 66
            // const res = await axios.post('/account-settings/delete-account');
67
            // handleAlert(res.data.success, res.data.data.message)
68
            // if(res.data.success){
69
            //     logout()
70
            // }
1968 steven 71
        } catch (error) {
1992 steven 72
            handleAlert(false, 'Disculpe, ha ocurrido un error')
1968 steven 73
            console.log('>>: error > ', error)
74
        }finally{
75
            setLoading(false)
76
        }
77
    }
1971 steven 78
 
1977 steven 79
    const CloseAccountContent = () => {
1975 steven 80
        if(showInputCode){
81
            return <form onSubmit={handleSubmit}>
82
                <div className="form-group">
1992 steven 83
                    <label htmlFor="exampleInputEmail1">Ingrese el codigo enviado a su correo electrónico</label>
1999 steven 84
                    <input type="text" className="form-control" id="exampleInputEmail1" />
1992 steven 85
                    <button className="btn btn-link btn-sm" onClick={() => resendCode()}>
86
                        ¿No ha recibido su correo?, solicite un codigo nuevo
1990 steven 87
                    </button>
1975 steven 88
                </div>
89
                <button type="submit" className="btn btn-primary">Enviar</button>
90
            </form>
91
        }else{
92
            return <>
1983 steven 93
                <h1 className="text-center">¿Esta seguro de eliminar su cuenta?</h1>
1975 steven 94
                <div className="row">
1983 steven 95
                    <div className='col-md col-sm-12 text-right'>
1991 steven 96
                        <button className="btn btn-primary" onClick={() => handleGetCode()} disabled={showInputCode}>Si, estoy seguro</button>
1975 steven 97
                    </div>
1983 steven 98
                    <div className='col-md col-sm-12 text-left'>
99
                        <button className="btn btn-primary" disabled={showInputCode}>No estoy seguro</button>
1975 steven 100
                    </div>
101
                </div>
102
            </>
103
        }
1977 steven 104
    }
1971 steven 105
    return (
1978 steven 106
        <div className="acc-setting h-100 d-flex justify-content-center align-items-center" style={{ position: "relative" }}>
1971 steven 107
            <div className="container">
1978 steven 108
                <div className="">
1974 steven 109
                    {CloseAccountContent()}
1971 steven 110
                </div>
1966 steven 111
            </div>
1968 steven 112
            {loading && (
113
                <StyledSpinnerContainer>
114
                    <Spinner />
115
                </StyledSpinnerContainer>
116
            )}
1966 steven 117
        </div>
118
    )
119
}
120
 
1992 steven 121
const mapDispatchToProps = {
122
    addNotification: (notification) => addNotification(notification),
123
};
124
 
1994 steven 125
export default connect(null, mapDispatchToProps)(CloseAccount);