Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3318 | Rev 3320 | 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
    <>
3319 stevensc 58
      <PageHeader
59
        title={`${currentHabit?.name ?? ''} - Agregar progreso`}
60
        goBack
61
      />
3315 stevensc 62
      <LoadingWrapper loading={isLoading}>
63
        <Form onSubmit={onSubmit}>
64
          <LoadingWrapper loading={isSubmitting} displayChildren>
65
            <Input
66
              control={control}
67
              label='Valor cuantitativo:'
68
              name='quantitative_value'
69
              type='number'
70
              rules={{ required: 'El valor es requerido' }}
71
              error={errors.quantitative_value?.message}
72
            />
3313 stevensc 73
 
3315 stevensc 74
            <Ckeditor
75
              control={control}
76
              name='qualitative_description'
77
              error={errors.qualitative_description?.message}
78
              rules={{ required: 'La descripción es requerida' }}
79
              label='Descripción cualitativa:'
80
            />
3313 stevensc 81
 
3315 stevensc 82
            <Button color='primary' type='submit'>
83
              Enviar
84
            </Button>
85
          </LoadingWrapper>
86
        </Form>
87
      </LoadingWrapper>
3313 stevensc 88
    </>
89
  )
90
}