浏览代码

step two validation schme

amenpunk 3 年之前
父节点
当前提交
8830ab75a1
共有 4 个文件被更改,包括 27 次插入12 次删除
  1. 4 0
      src/App.css
  2. 3 0
      src/Components/Modal/PasswordModal.jsx
  3. 3 3
      src/Components/Password/Steps/one.js
  4. 17 9
      src/Components/Password/Steps/two.js

+ 4 - 0
src/App.css

@@ -208,3 +208,7 @@
208 208
     display : flex;
209 209
     flex-direction:row;
210 210
 }
211
+.feedback_error{
212
+    color: #fd4b4b;
213
+    font-size:14px;
214
+}

+ 3 - 0
src/Components/Modal/PasswordModal.jsx

@@ -22,6 +22,7 @@ export function HelpModal (props) {
22 22
         lastName: '',
23 23
         puesto: '',
24 24
         niveles_educativo: 0,
25
+        puesto_id: 0,
25 26
     });
26 27
 
27 28
     const isStepSkipped = (step) => {
@@ -65,6 +66,8 @@ export function HelpModal (props) {
65 66
                 <StepTwo 
66 67
                     handleNext={handleNext} 
67 68
                     handleBack={handleBack} 
69
+                    password={password} 
70
+                    setPassword={setPassword} 
68 71
                 />
69 72
         },
70 73
         {

+ 3 - 3
src/Components/Password/Steps/one.js

@@ -27,13 +27,13 @@ export function StepOne(props) {
27 27
         .required("Ingresa un nombre válido"),
28 28
         lastName: 
29 29
         Yup.string()
30
-        .required("Ingresa un apellido valido")
30
+        .required("Ingresa un apellido válido")
31 31
         .min(2, 'Demasiado corto!').max(50, 'Demasiado Largo!'),
32 32
         puesto: 
33 33
         Yup.string()
34
-        .required("Ingrea un puesto valido"),
34
+        .required("Ingrea un puesto válido"),
35 35
         niveles_educativo: 
36
-        Yup.number('Ingresa un valor valido')
36
+        Yup.number('Ingresa un valor válido')
37 37
         .required('Ingresa un nivel educativo válido'),
38 38
     });
39 39
 

+ 17 - 9
src/Components/Password/Steps/two.js

@@ -11,17 +11,20 @@ import {
11 11
 export function StepTwo(props) {
12 12
 
13 13
     const PlazaScheme = Yup.object().shape({
14
-        puesto: Yup.object().required('Escoge un puesto valido')
14
+        puesto_id: 
15
+        Yup.number()
16
+        .positive('Escoge un puesto válido')
17
+        .required('Escoge un puesto válido')
15 18
     });
16 19
 
17
-    let {  handleNext, handleBack } = props
20
+    let {  handleNext, handleBack, password, setPassword } = props
18 21
 
19 22
     const formik = useFormik({
20 23
         initialValues: {
21
-            puesto: {}
24
+            puesto_id: password.puesto_id
22 25
         },
23 26
         onSubmit: (fields) => {
24
-            console.log('SUBMIT > ',fields)
27
+            setPassword({...password, ...fields})
25 28
             handleNext()
26 29
         },
27 30
         validationSchema: PlazaScheme,
@@ -30,10 +33,11 @@ export function StepTwo(props) {
30 33
     const [age, setAge] = React.useState('');
31 34
 
32 35
     const handleChange = (event) => {
36
+        console.log("Edad -> ",event.target.value)
33 37
         setAge(event.target.value);
34 38
     };
35 39
 
36
-    const { handleSubmit,} = formik;
40
+    const { handleSubmit, touched, errors, getFieldProps } = formik;
37 41
 
38 42
     return (
39 43
         <FormikProvider style={{ padding : 25 }} value={formik}>
@@ -48,13 +52,17 @@ export function StepTwo(props) {
48 52
                             value={age}
49 53
                             label="Puestos"
50 54
                             onChange={handleChange}
55
+                            {...getFieldProps('puesto_id')}
56
+                            error={Boolean(touched.puesto_id && errors.puesto_id)}
51 57
                         >
52
-                            <MenuItem value={10}>Ten</MenuItem>
53
-                            <MenuItem value={20}>Twenty</MenuItem>
54
-                            <MenuItem value={30}>Thirty</MenuItem>
58
+                            <MenuItem value={10}>Full Stack</MenuItem>
59
+                            <MenuItem value={20}>Web Developer</MenuItem>
60
+                            <MenuItem value={30}>Database Administrator</MenuItem>
55 61
                         </Select>
56 62
                     </FormControl>
57
-
63
+                    <label className="feedback_error">
64
+                        {touched.puesto_id && errors.puesto_id}
65
+                    </label>
58 66
                     <Box sx={{ mb: 2 }}>
59 67
                         <div style={{ paddingTop  : 15}}>
60 68
                             <Button