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 { Box } from '@mui/material'
import { parse } from '@app/utils'
import Button from '@app/components/UI/buttons/Buttons'
import Checkbox from '@components/UI/inputs/Checkbox'
import FormErrorFeedback from '@app/components/UI/form/FormErrorFeedback'
function QuizMultipleQuestion({
question,
onConfirm,
buttonLabel = 'Finalizar',
isCurrent = false
}) {
const {
control,
formState: { errors },
handleSubmit
} = useForm()
const handleConfirm = handleSubmit((data) => {
onConfirm(data[question.uuid])
})
return (
<Box sx={{ display: isCurrent ? 'initial' : 'none' }}>
<Box sx={{ '& p': { fontWeight: '600', fontSize: '1.5rem' } }}>
{parse(question.text)}
</Box>
{question.answers.map(({ uuid, text }) => (
<Box
key={uuid}
sx={{ display: 'flex', justifyContent: 'space-between', gap: 2 }}
component='label'
htmlFor={uuid}
>
{parse(text)}
<Checkbox
control={control}
name={question.uuid}
value={uuid}
rules={{ required: true }}
/>
</Box>
))}
{errors[question.uuid] && (
<FormErrorFeedback>
Por favor, seleccione al menos una respuesta
</FormErrorFeedback>
)}
<Button
color='primary'
onClick={handleConfirm}
styles={{ marginTop: '1rem' }}
>
{buttonLabel}
</Button>
</Box>
)
}
export default QuizMultipleQuestion