Rev 3331 | Rev 3374 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react'
import { useDispatch } from 'react-redux'
import { Typography } from '@mui/material'
import { axios } from '@utils'
import { useFetch } from '@hooks'
import { addNotification } from '@store/notification/notification.actions'
import Widget from '@components/UI/Widget'
import EmojiSelector from '@components/common/emoji-selector'
import LoadingWrapper from '@components/common/loading-wrapper'
const DailyPulse = ({ dailyPulseUrl = '' }) => {
const [isSubmitting, setIsSubmitting] = useState(false)
const dispatch = useDispatch()
const { data, isLoading, refetch } = useFetch(dailyPulseUrl, {
emojis_how_are_you_feel: [],
emojis_climate_on_your_organization: []
})
/* const updateEmojis = (id) => {
const isClimate = data.emojis_climate_on_your_organization.some(
(emoji) => emoji.id === id
)
if (isClimate) {
data.emojis_climate_on_your_organization.filter(
(emoji) => emoji.id === id
)
}
} */
const saveEmoji = async ({ link_save = '', id = '' }) => {
try {
setIsSubmitting(true)
const response = await axios.post(link_save)
const { data, success } = response.data
if (!success) {
const errMsg = typeof data === 'string' ? data : 'Ha ocurrido un error'
throw new Error(errMsg)
}
refetch()
} catch (error) {
dispatch(addNotification({ style: 'danger', msg: error.message }))
} finally {
setIsSubmitting(false)
}
}
return (
<Widget>
<Widget.Header title='Pulso Diario' />
<Widget.Body>
<LoadingWrapper
loading={isLoading || isSubmitting}
displayChildren={isSubmitting}
>
<Typography variant='h4' textAlign='center'>
¿Como te sientes hoy?
</Typography>
<EmojiSelector
options={data.emojis_how_are_you_feel}
onSelect={saveEmoji}
/>
<Typography variant='h4' textAlign='center'>
¿Como esta el clima en la organización?
</Typography>
<EmojiSelector
options={data.emojis_climate_on_your_organization}
onSelect={saveEmoji}
/>
</LoadingWrapper>
</Widget.Body>
</Widget>
)
}
export default DailyPulse