Rev 3262 | Rev 3335 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useForm } from 'react-hook-form'import { Button } from '@mui/material'import Widget from '@components/UI/Widget'import Form from '@components/common/form'import Input from '@components/UI/inputs/Input'import Select from '@components/UI/inputs/Select'import Ckeditor from '@components/common/ckeditor/Ckeditor'import DatetimePicker from '@components/common/inputs/datetime-picker'import LoadingWrapper from '@components/common/loading-wrapper'export default function GoalForm({onSubmit = () => {},habits = [],defaultValues = {},values = {}}) {const {control,handleSubmit,formState: { errors, isSubmitting }} = useForm({defaultValues,values})return (<Widget styles={{ overflow: 'visible' }}><Widget.Body><Form onSubmit={handleSubmit(onSubmit)}><LoadingWrapper loading={isSubmitting} displayChildren><Inputname='name'label='Nombre'placeholder='Escribe el nombre de la meta'control={control}rules={{ required: 'El nombre es requerido' }}error={errors.name?.message}/><Ckeditorlabel='Descripción'name='description'control={control}rules={{ required: 'La descripción es requerida' }}error={errors.description?.message}/><Inputtype='number'name='value'label='Valor cuantitativo de la Meta a lograr'placeholder='Escribe el valor'control={control}rules={{required: { value: true, message: 'El valor es requerido' },validate: {positive: (value) =>Number(value) > 0 || 'El valor mayor a cero',max: (value) =>Number(value) <= 100 ||'El valor debe ser menor o igual a 100'}}}error={errors.value?.message}/><Selectlabel='Hábitos y competencias para lograr la Meta'name='skill_id'control={control}options={habits}defaultValue={[]}error={errors.skill_id?.message}/><DatetimePickerlabel='Fecha de inicio'name='start_date'control={control}rules={{required: { value: true, message: 'La fecha es requerida' },validate: {beGreaterThanToday: (value) =>new Date(value) > new Date() ||'La fecha debe ser mayor a la fecha actual'}}}/><DatetimePickerlabel='Fecha de finalización'name='end_date'control={control}rules={{required: { value: true, message: 'La fecha es requerida' },validate: (value, { start_date }) =>new Date(value) > new Date(start_date) ||'La fecha debe ser mayor a la fecha de inicio'}}/><Button type='submit' color='primary'>Enviar</Button></LoadingWrapper></Form></Widget.Body></Widget>)}