react-garden
Version:
React + TypeScript + ThreeJS app using Material UI on NextJS, Apollo Client, GraphQL + WordPress REST APIs, for ThreeD web development.. a part of the threed.ai code family.
57 lines (50 loc) • 1.74 kB
JavaScript
// ** React Imports
import { useState } from 'react'
// ** MUI Imports
import Radio from '@mui/material/Radio'
import Button from '@mui/material/Button'
import FormLabel from '@mui/material/FormLabel'
import RadioGroup from '@mui/material/RadioGroup'
import FormControl from '@mui/material/FormControl'
import FormHelperText from '@mui/material/FormHelperText'
import FormControlLabel from '@mui/material/FormControlLabel'
const RadioShowError = () => {
// ** States
const [value, setValue] = useState('')
const [error, setError] = useState(false)
const [helperText, setHelperText] = useState('Choose wisely')
const handleRadioChange = event => {
setError(false)
setHelperText(' ')
setValue(event.target.value)
}
const handleSubmit = event => {
event.preventDefault()
if (value === 'best') {
setError(false)
setHelperText('You got it!')
} else if (value === 'worst') {
setError(true)
setHelperText('Sorry, wrong answer!')
} else {
setError(true)
setHelperText('Please select an option.')
}
}
return (
<form onSubmit={handleSubmit}>
<FormControl error={error}>
<FormLabel component='legend'>Pop quiz: MUI is...</FormLabel>
<RadioGroup aria-label='quiz' name='quiz' value={value} onChange={handleRadioChange}>
<FormControlLabel value='best' control={<Radio />} label='The best!' />
<FormControlLabel value='worst' control={<Radio />} label='The worst.' />
</RadioGroup>
<FormHelperText>{helperText}</FormHelperText>
<Button type='submit' variant='outlined' sx={{ mt: 3 }}>
Check Answer
</Button>
</FormControl>
</form>
)
}
export default RadioShowError