Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React from 'react';

import { useAlert } from '@shared/hooks';
import { getKnowledge, saveKnowledge } from '@knowledges/services';

import { Form, FormFilePicker, FormInput, FormRichEditor, FormSelect } from '@shared/components';
import { Button } from '@mui/material';

export function KnowledgeForm({ id = '', url = '', categories = [], onComplete = () => {} }) {
  const { showError } = useAlert();
  const isEdit = url.includes('edit');

  const onSubmit = async (knowledge) => {
    try {
      const newKnowledge = await saveKnowledge(url, knowledge);
      onComplete(newKnowledge);
    } catch (error) {
      showError(error.message);
    }
  };

  return (
    <Form id={id} onSubmit={onSubmit} defaultValuesPromise={isEdit && getKnowledge(url)} reset>
      <FormSelect
        name='category_id'
        label='Categoría'
        placeholder='Seleccione un opción'
        options={categories}
        rules={{ required: 'Este campo es requerido' }}
      />

      <FormInput
        name='title'
        label='Título'
        placeholder='Ingrese el título del conocimiento'
        rules={{ required: 'Este campo es requerido' }}
      />

      <FormRichEditor
        name='description'
        label='Descripción'
        rules={{ required: 'Este campo es requerido' }}
      />

      <FormFilePicker
        label='Seleccione una imagen'
        type='image'
        name='image'
        rules={{ required: 'Este campo es requerido' }}
      />

      <FormFilePicker
        label='Seleccione un archivo'
        type='file'
        name='attachment'
        rules={{ required: 'Este campo es requerido' }}
      />

      <Button type='submit' variant='contained' color='primary'>
        Guardar
      </Button>
    </Form>
  );
}