Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3736 stevensc 1
import React from 'react';
2
import { styled } from '@mui/material';
3
 
4
import { useBasicSettings } from '@account-settings/hooks';
5
import { SettingsWidget } from '@account-settings/components';
6
 
7
import { Form, FormButton, FormCheckbox, FormInput, FormSelect, Spinner } from '@shared/components';
8
 
9
const Row = styled('div')(({ theme }) => ({
10
  display: 'flex',
11
  gap: theme.spacing(1)
12
}));
13
 
14
const gendersOptions = [
15
  { label: 'Masculino', value: 'm' },
16
  { label: 'Femenino', value: 'f' }
17
];
18
 
19
const BasicSettings = () => {
20
  const { formValues, timezones, loading, updateSettings } = useBasicSettings();
21
 
22
  if (loading) return <Spinner />;
23
 
24
  return (
25
    <SettingsWidget title='Información básica'>
26
      <Form onSubmit={updateSettings} defaultValues={formValues}>
27
        <Row>
28
          <FormInput
29
            label='Nombre'
30
            placeholder='Ingrese su nombre'
31
            name='first_name'
32
            rules={{ required: 'Este campo es requerido' }}
33
          />
34
          <FormInput
35
            label='Apellido'
36
            placeholder='Ingrese su apellido'
37
            name='last_name'
38
            rules={{ required: 'Este campo es requerido' }}
39
          />
40
        </Row>
41
 
42
        <Row>
43
          <FormInput
44
            label='Correo'
45
            placeholder='Ingrese su correo'
46
            name='email'
47
            rules={{
48
              required: 'Este campo es requerido',
49
              pattern: {
50
                message: 'Por favor ingrese un correo válido',
51
                value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/
52
              }
53
            }}
54
          />
55
          <FormInput
56
            label='Teléfono'
57
            placeholder='Ingrese su teléfono'
58
            name='phone'
59
            rules={{
60
              required: 'Por favor ingrese su número de teléfono',
61
              pattern: {
62
                message: 'Por favor ingrese un número de teléfono válido',
63
                value: /^\+[1-9]{1}[0-9]{0,2}[2-9]{1}[0-9]{2}[2-9]{1}[0-9]{2}[0-9]{4}$/
64
              }
65
            }}
66
          />
67
        </Row>
68
 
69
        <Row>
70
          <FormSelect
71
            label='Género'
72
            name='gender'
73
            placeholder='Seleccione su género'
74
            rules={{ required: 'Este campo es requerido' }}
75
            options={gendersOptions}
76
          />
77
          <FormSelect
78
            label='Zona horaria'
79
            name='timezone'
80
            placeholder='Seleccione su zona horaria'
81
            rules={{ required: 'Este campo es requerido' }}
82
            options={timezones}
83
          />
84
        </Row>
85
 
86
        <FormCheckbox
87
          label='Eres mayor de 18 años'
88
          name='is_adult'
89
          rules={{ required: 'Este campo es requerido' }}
90
        />
91
 
92
        <FormButton>Guardar</FormButton>
93
      </Form>
94
    </SettingsWidget>
95
  );
96
};
97
 
98
export default BasicSettings;