Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2268 stevensc 1
import React, { useState } from 'react'
691 stevensc 2
import { useDispatch } from 'react-redux'
3330 stevensc 3
import { Typography } from '@mui/material'
5 stevensc 4
 
3330 stevensc 5
import { axios } from '@utils'
2780 stevensc 6
import { useFetch } from '@hooks'
3330 stevensc 7
import { addNotification } from '@store/notification/notification.actions'
5 stevensc 8
 
3330 stevensc 9
import Widget from '@components/UI/Widget'
3374 stevensc 10
 
3330 stevensc 11
import LoadingWrapper from '@components/common/loading-wrapper'
3374 stevensc 12
import EmojiGroup from '@components/common/emoji-selector'
2268 stevensc 13
 
3330 stevensc 14
const DailyPulse = ({ dailyPulseUrl = '' }) => {
15
  const [isSubmitting, setIsSubmitting] = useState(false)
16
  const dispatch = useDispatch()
41 stevensc 17
 
3332 stevensc 18
  const { data, isLoading, refetch } = useFetch(dailyPulseUrl, {
3331 stevensc 19
    emojis_how_are_you_feel: [],
20
    emojis_climate_on_your_organization: []
3330 stevensc 21
  })
5 stevensc 22
 
3332 stevensc 23
  /*  const updateEmojis = (id) => {
24
    const isClimate = data.emojis_climate_on_your_organization.some(
25
      (emoji) => emoji.id === id
26
    )
27
 
28
    if (isClimate) {
29
      data.emojis_climate_on_your_organization.filter(
30
        (emoji) => emoji.id === id
31
      )
32
    }
33
  } */
34
 
3374 stevensc 35
  const saveEmoji = async (link_save = '') => {
3330 stevensc 36
    try {
37
      setIsSubmitting(true)
3332 stevensc 38
      const response = await axios.post(link_save)
3330 stevensc 39
      const { data, success } = response.data
691 stevensc 40
 
3330 stevensc 41
      if (!success) {
42
        const errMsg = typeof data === 'string' ? data : 'Ha ocurrido un error'
43
        throw new Error(errMsg)
44
      }
45
 
3332 stevensc 46
      refetch()
3330 stevensc 47
    } catch (error) {
48
      dispatch(addNotification({ style: 'danger', msg: error.message }))
49
    } finally {
50
      setIsSubmitting(false)
51
    }
2281 stevensc 52
  }
53
 
2268 stevensc 54
  return (
2281 stevensc 55
    <Widget>
2276 stevensc 56
      <Widget.Header title='Pulso Diario' />
5 stevensc 57
 
3330 stevensc 58
      <Widget.Body>
59
        <LoadingWrapper
60
          loading={isLoading || isSubmitting}
61
          displayChildren={isSubmitting}
62
        >
3331 stevensc 63
          <Typography variant='h4' textAlign='center'>
64
            ¿Como te sientes hoy?
65
          </Typography>
3330 stevensc 66
 
3374 stevensc 67
          <EmojiGroup>
68
            {data.emojis_how_are_you_feel?.map(
69
              ({ id, image, link_save }, index) => (
70
                <EmojiGroup.Item
71
                  key={id}
72
                  image={image}
73
                  index={index}
74
                  onClick={() => saveEmoji(link_save)}
75
                />
76
              )
77
            )}
78
          </EmojiGroup>
79
 
3331 stevensc 80
          <Typography variant='h4' textAlign='center'>
3330 stevensc 81
            ¿Como esta el clima en la organización?
82
          </Typography>
3374 stevensc 83
 
84
          <EmojiGroup>
85
            {data.emojis_climate_on_your_organization?.map(
86
              ({ id, image, link_save }, index) => (
87
                <EmojiGroup.Item
88
                  key={id}
89
                  image={image}
90
                  index={index}
91
                  onClick={() => saveEmoji(link_save)}
92
                />
93
              )
94
            )}
95
          </EmojiGroup>
3330 stevensc 96
        </LoadingWrapper>
2268 stevensc 97
      </Widget.Body>
98
    </Widget>
691 stevensc 99
  )
100
}
5 stevensc 101
 
691 stevensc 102
export default DailyPulse