Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3452 stevensc 1
import React from 'react';
2
 
3469 stevensc 3
import { useAlert } from '@shared/hooks';
3476 stevensc 4
import { getKnowledge, saveKnowledge } from '@knowledges/services';
3452 stevensc 5
 
3476 stevensc 6
import { Form, FormFilePicker, FormInput, FormRichEditor, FormSelect } from '@shared/components';
3478 stevensc 7
import { Button } from '@mui/material';
3469 stevensc 8
 
3478 stevensc 9
export function KnowledgeForm({ id = '', url = '', categories = [], onComplete = () => {} }) {
3477 stevensc 10
  const { showError } = useAlert();
3476 stevensc 11
  const isEdit = url.includes('edit');
3452 stevensc 12
 
13
  const onSubmit = async (knowledge) => {
14
    try {
15
      const newKnowledge = await saveKnowledge(url, knowledge);
16
      onComplete(newKnowledge);
17
    } catch (error) {
18
      showError(error.message);
19
    }
20
  };
21
 
22
  return (
3478 stevensc 23
    <Form id={id} onSubmit={onSubmit} defaultValuesPromise={isEdit && getKnowledge(url)} reset>
3452 stevensc 24
      <FormSelect
25
        name='category_id'
26
        label='Categoría'
27
        placeholder='Seleccione un opción'
28
        options={categories}
29
        rules={{ required: 'Este campo es requerido' }}
30
      />
31
 
32
      <FormInput
33
        name='title'
34
        label='Título'
35
        placeholder='Ingrese el título del conocimiento'
36
        rules={{ required: 'Este campo es requerido' }}
37
      />
38
 
39
      <FormRichEditor
40
        name='description'
41
        label='Descripción'
42
        rules={{ required: 'Este campo es requerido' }}
43
      />
44
 
3476 stevensc 45
      <FormFilePicker
46
        label='Seleccione una imagen'
47
        type='image'
48
        name='image'
49
        rules={{ required: 'Este campo es requerido' }}
50
      />
3452 stevensc 51
 
3477 stevensc 52
      <FormFilePicker
53
        label='Seleccione un archivo'
54
        type='file'
3452 stevensc 55
        name='attachment'
56
        rules={{ required: 'Este campo es requerido' }}
3477 stevensc 57
      />
3478 stevensc 58
 
59
      <Button type='submit' variant='contained' color='primary'>
60
        Guardar
61
      </Button>
3452 stevensc 62
    </Form>
63
  );
64
}