Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2802 | Autoría | Ultima modificación | Ver Log |

import React from 'react'
import { useForm } from 'react-hook-form'
import Datetime from 'react-datetime'

import { useGoals } from '@hooks'

import Modal from '@components/UI/modal/Modal'
import Input from '@components/UI/inputs/Input'
import Ckeditor from '@components/UI/Ckeditor'
import TagsInput from '@components/UI/TagsInput'

import 'react-datetime/css/react-datetime.css'

export function GoalModal() {
  const { toggleModal, showModal, addGoal } = useGoals()
  const habits = [
    {
      value: 1,
      name: 'Ejercicio Diario'
    },
    {
      value: 2,
      name: 'Leer 1 Hora'
    },
    {
      value: 3,
      name: 'Meditar'
    }
  ]

  const {
    control,
    handleSubmit,
    setValue,
    formState: { errors }
  } = useForm({
    defaultValues: {
      title: '',
      description: '',
      value: 1,
      finishDate: Date.now(),
      habits: []
    }
  })

  const onSubmit = handleSubmit(({ goal }) => addGoal(goal))

  return (
    <Modal
      show={showModal}
      title='Propósito'
      onClose={toggleModal}
      onAccept={onSubmit}
    >
      <Input
        name='title'
        label='Titulo'
        placeholder='Define el título de tu meta'
        control={control}
        rules={{ required: 'Este campo es requerido' }}
        error={errors.title?.message}
      />

      <Input
        type='number'
        name='value'
        label='Valor'
        placeholder='Define un valor a meta'
        control={control}
        rules={{ required: 'Este campo es requerido' }}
        error={errors.value?.message}
      />

      <TagsInput
        name='habits'
        label='Habitos'
        suggestions={habits}
        onChange={(tags) => setValue('habits', tags)}
      />
      <Datetime
        dateFormat='DD-MM-YYYY'
        timeFormat={false}
        inputProps={{ className: 'form-control' }}
        initialValue={Date.parse(new Date())}
        closeOnSelect
      />
      <Ckeditor
        label='Descripción'
        name='description'
        control={control}
        rules={{ required: 'Este campo es requerido' }}
        error={errors.description?.message}
      />
    </Modal>
  )
}