Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3313 stevensc 1
import React from 'react'
2
import { useParams } from 'react-router-dom'
3
import { useDispatch } from 'react-redux'
4
import { useForm } from 'react-hook-form'
5
import { Button } from '@mui/material'
6
 
3315 stevensc 7
import { useFetch, useMyProgress } from '@hooks'
3313 stevensc 8
import { saveProgress } from '@services/habits/habits'
9
import { addNotification } from '@store/notification/notification.actions'
10
 
11
import PageHeader from '@components/common/page-header'
12
import Form from '@components/common/form'
13
import LoadingWrapper from '@components/common/loading-wrapper'
14
import Input from '@components/UI/inputs/Input'
15
import Ckeditor from '@components/common/ckeditor/Ckeditor'
16
 
17
export default function AddHabitProgress() {
18
  const { id } = useParams()
19
  const dispatch = useDispatch()
20
 
21
  const { getHabitById } = useMyProgress()
22
  const currentHabit = getHabitById(id)
23
 
3317 stevensc 24
  const { data, isLoading } = useFetch(currentHabit?.link)
3315 stevensc 25
 
3313 stevensc 26
  const {
27
    control,
28
    formState: { errors, isSubmitting },
29
    handleSubmit
30
  } = useForm()
31
 
32
  const getCurrentDate = () => {
33
    const date = new Date()
34
    const year = date.getFullYear()
35
    const month = String(date.getMonth() + 1).padStart(2, '0') // Enero es 0
36
    const day = String(date.getDate()).padStart(2, '0')
37
    const hours = String(date.getHours()).padStart(2, '0')
38
    const minutes = String(date.getMinutes()).padStart(2, '0')
39
    const seconds = String(date.getSeconds()).padStart(2, '0')
40
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
41
  }
42
 
3315 stevensc 43
  const onSubmit = handleSubmit(async (progress) => {
3313 stevensc 44
    try {
45
      const date = getCurrentDate()
3315 stevensc 46
      const response = await saveProgress(data.link_add, {
47
        ...progress,
3313 stevensc 48
        date
49
      })
50
      console.log(response)
51
    } catch (error) {
52
      dispatch(addNotification({ style: 'danger', msg: error.message }))
53
    }
54
  })
55
 
56
  return (
57
    <>
3318 stevensc 58
      <PageHeader title={`${currentHabit?.name} - Agregar progreso`} goBack />
3315 stevensc 59
      <LoadingWrapper loading={isLoading}>
60
        <Form onSubmit={onSubmit}>
61
          <LoadingWrapper loading={isSubmitting} displayChildren>
62
            <Input
63
              control={control}
64
              label='Valor cuantitativo:'
65
              name='quantitative_value'
66
              type='number'
67
              rules={{ required: 'El valor es requerido' }}
68
              error={errors.quantitative_value?.message}
69
            />
3313 stevensc 70
 
3315 stevensc 71
            <Ckeditor
72
              control={control}
73
              name='qualitative_description'
74
              error={errors.qualitative_description?.message}
75
              rules={{ required: 'La descripción es requerida' }}
76
              label='Descripción cualitativa:'
77
            />
3313 stevensc 78
 
3315 stevensc 79
            <Button color='primary' type='submit'>
80
              Enviar
81
            </Button>
82
          </LoadingWrapper>
83
        </Form>
84
      </LoadingWrapper>
3313 stevensc 85
    </>
86
  )
87
}