test-crud
Version:
es una prueba acerca de como publicar un package name
59 lines (54 loc) • 1.36 kB
JSX
import React from 'react'
import { useFormikContext } from 'formik'
import {
FormControl,
FormControlLabel,
FormLabel,
Radio,
RadioGroup,
FormHelperText,
} from '@mui/material'
function AppRadioGroup({
name,
label,
options,
onChange,
disabledControl = false,
...rest
}) {
const { setFieldValue, setFieldTouched, errors, touched, values } =
useFormikContext()
const handleChange = (event) => {
const { value } = event.target
setFieldTouched(name, true)
setFieldValue(name, value)
if (onChange) {
onChange(value)
}
}
return (
<FormControl
component="fieldset"
error={touched[name] && Boolean(errors[name])}
disabled={disabledControl}
sx={{ width: '100%', maxWidth: '100%' }}
>
<FormLabel component="legend">{label}</FormLabel>
<RadioGroup value={values[name] || ''} onChange={handleChange} {...rest}>
{options.map((option) => (
<FormControlLabel
key={option.value}
value={option.value}
control={<Radio />}
label={option.label}
sx={{ marginRight: 2, marginBottom: 1 }}
/>
))}
</RadioGroup>
{touched[name] && errors[name] && (
<FormHelperText>{errors[name]}</FormHelperText>
)}
</FormControl>
)
}
export default AppRadioGroup